app_server: Cleanup error check logic to be more consistent.

Some of these only returned generic errors.
This commit is contained in:
Michael Lotz
2018-12-29 00:52:05 +01:00
parent 8071db3259
commit 3752309050
+36 -32
View File
@@ -2162,10 +2162,10 @@ ServerApp::_DispatchMessage(int32 code, BPrivate::LinkReceiver& link)
fLink.AttachShape(*shapes[i]); fLink.AttachShape(*shapes[i]);
delete shapes[i]; delete shapes[i];
} }
} else }
fLink.StartMessage(status); }
} else if (status != B_OK)
fLink.StartMessage(status); fLink.StartMessage(status);
fLink.Flush(); fLink.Flush();
@@ -2209,9 +2209,10 @@ ServerApp::_DispatchMessage(int32 code, BPrivate::LinkReceiver& link)
if (status == B_OK) { if (status == B_OK) {
fLink.StartMessage(B_OK); fLink.StartMessage(B_OK);
fLink.Attach(hasArray, numChars * sizeof(bool)); fLink.Attach(hasArray, numChars * sizeof(bool));
} else }
fLink.StartMessage(status); }
} else
if (status != B_OK)
fLink.StartMessage(status); fLink.StartMessage(status);
fLink.Flush(); fLink.Flush();
@@ -2257,9 +2258,10 @@ ServerApp::_DispatchMessage(int32 code, BPrivate::LinkReceiver& link)
if (status == B_OK) { if (status == B_OK) {
fLink.StartMessage(B_OK); fLink.StartMessage(B_OK);
fLink.Attach(edgeArray, numChars * sizeof(edge_info)); fLink.Attach(edgeArray, numChars * sizeof(edge_info));
} else }
fLink.StartMessage(status); }
} else
if (status != B_OK)
fLink.StartMessage(status); fLink.StartMessage(status);
fLink.Flush(); fLink.Flush();
@@ -2342,13 +2344,14 @@ ServerApp::_DispatchMessage(int32 code, BPrivate::LinkReceiver& link)
for (int32 i = 0; i < numChars; i++) for (int32 i = 0; i < numChars; i++)
fLink.Attach<BPoint>(escapements[i]); fLink.Attach<BPoint>(escapements[i]);
if (offsets) { if (wantsOffsets) {
for (int32 i = 0; i < numChars; i++) for (int32 i = 0; i < numChars; i++)
fLink.Attach<BPoint>(offsets[i]); fLink.Attach<BPoint>(offsets[i]);
} }
} else }
fLink.StartMessage(status); }
} else
if (status != B_OK)
fLink.StartMessage(status); fLink.StartMessage(status);
delete[] offsets; delete[] offsets;
@@ -2485,17 +2488,21 @@ ServerApp::_DispatchMessage(int32 code, BPrivate::LinkReceiver& link)
uint32 numBytes; uint32 numBytes;
link.Read<uint32>(&numBytes); link.Read<uint32>(&numBytes);
bool success = false;
BStackOrHeapArray<char, 256> charArray(numBytes); BStackOrHeapArray<char, 256> charArray(numBytes);
BStackOrHeapArray<BRect, 64> rectArray(numChars); BStackOrHeapArray<BRect, 64> rectArray(numChars);
if (charArray.IsValid() && rectArray.IsValid()) { if (!charArray.IsValid() || !rectArray.IsValid()) {
fLink.StartMessage(B_NO_MEMORY);
fLink.Flush();
break;
}
link.Read(charArray, numBytes); link.Read(charArray, numBytes);
// figure out escapements // figure out escapements
ServerFont font; ServerFont font;
if (font.SetFamilyAndStyle(familyID, styleID) == B_OK) { status_t status = font.SetFamilyAndStyle(familyID, styleID);
if (status == B_OK) {
font.SetSize(size); font.SetSize(size);
font.SetRotation(rotation); font.SetRotation(rotation);
font.SetShear(shear); font.SetShear(shear);
@@ -2504,21 +2511,18 @@ ServerApp::_DispatchMessage(int32 code, BPrivate::LinkReceiver& link)
font.SetFlags(flags); font.SetFlags(flags);
// TODO: implement for real // TODO: implement for real
if (font.GetBoundingBoxes(charArray, numBytes, status = font.GetBoundingBoxes(charArray, numBytes,
numChars, rectArray, stringEscapement, mode, delta, numChars, rectArray, stringEscapement, mode, delta,
code == AS_GET_BOUNDINGBOXES_STRING) == B_OK) { code == AS_GET_BOUNDINGBOXES_STRING);
if (status == B_OK) {
fLink.StartMessage(B_OK); fLink.StartMessage(B_OK);
for (int32 i = 0; i < numChars; i++) for (int32 i = 0; i < numChars; i++)
fLink.Attach<BRect>(rectArray[i]); fLink.Attach<BRect>(rectArray[i]);
success = true;
}
} }
} }
if (!success) if (status != B_OK)
fLink.StartMessage(B_ERROR); fLink.StartMessage(status);
fLink.Flush(); fLink.Flush();
break; break;
@@ -2585,8 +2589,8 @@ ServerApp::_DispatchMessage(int32 code, BPrivate::LinkReceiver& link)
} }
ServerFont font; ServerFont font;
bool success = false; status_t status = font.SetFamilyAndStyle(familyID, styleID);
if (font.SetFamilyAndStyle(familyID, styleID) == B_OK) { if (status == B_OK) {
font.SetSize(ptsize); font.SetSize(ptsize);
font.SetRotation(rotation); font.SetRotation(rotation);
font.SetShear(shear); font.SetShear(shear);
@@ -2594,19 +2598,19 @@ ServerApp::_DispatchMessage(int32 code, BPrivate::LinkReceiver& link)
font.SetSpacing(spacing); font.SetSpacing(spacing);
font.SetFlags(flags); font.SetFlags(flags);
if (font.GetBoundingBoxesForStrings(stringArray, lengthArray, status = font.GetBoundingBoxesForStrings(stringArray,
numStrings, rectArray, mode, deltaArray) == B_OK) { lengthArray, numStrings, rectArray, mode, deltaArray);
if (status == B_OK) {
fLink.StartMessage(B_OK); fLink.StartMessage(B_OK);
fLink.Attach(rectArray, numStrings * sizeof(BRect)); fLink.Attach(rectArray, numStrings * sizeof(BRect));
success = true;
} }
} }
for (int32 i = 0; i < numStrings; i++) for (int32 i = 0; i < numStrings; i++)
free(stringArray[i]); free(stringArray[i]);
if (!success) if (status != B_OK)
fLink.StartMessage(B_ERROR); fLink.StartMessage(status);
fLink.Flush(); fLink.Flush();
break; break;