Really fix passing BMessages by area.
This commit is contained in:
+12
-12
@@ -1333,20 +1333,20 @@ BMessage::Unflatten(BDataIO* stream)
|
|||||||
if (result != fieldsSize)
|
if (result != fieldsSize)
|
||||||
return result < 0 ? result : B_BAD_VALUE;
|
return result < 0 ? result : B_BAD_VALUE;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (fHeader->data_size > 0) {
|
if (fHeader->data_size > 0) {
|
||||||
fData = (uint8*)malloc(fHeader->data_size);
|
fData = (uint8*)malloc(fHeader->data_size);
|
||||||
if (fData == NULL) {
|
if (fData == NULL) {
|
||||||
free(fFields);
|
free(fFields);
|
||||||
fFields = NULL;
|
fFields = NULL;
|
||||||
_InitHeader();
|
_InitHeader();
|
||||||
return B_NO_MEMORY;
|
return B_NO_MEMORY;
|
||||||
|
}
|
||||||
|
|
||||||
|
result = stream->Read(fData, fHeader->data_size);
|
||||||
|
if (result != (ssize_t)fHeader->data_size)
|
||||||
|
return result < 0 ? result : B_BAD_VALUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
result = stream->Read(fData, fHeader->data_size);
|
|
||||||
if (result != (ssize_t)fHeader->data_size)
|
|
||||||
return result < 0 ? result : B_BAD_VALUE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return _ValidateMessage();
|
return _ValidateMessage();
|
||||||
|
|||||||
Reference in New Issue
Block a user