screencap: return instead of _exit.

_exit was being used instead of return in order to
work around a static destructor issue that has been
fixed.

Bug: 77934844
Test: screencap (and it doesn't crash)
Change-Id: I5dc25b0af5099993a94705ac9c7b439e68432824
This commit is contained in:
Steven Moreland
2018-05-24 17:48:28 -07:00
parent d8cf91c5f8
commit a89ae86745

View File

@@ -182,8 +182,7 @@ int main(int argc, char** argv)
sp<IBinder> display = SurfaceComposerClient::getBuiltInDisplay(displayId);
if (display == NULL) {
fprintf(stderr, "Unable to get handle for display %d\n", displayId);
// b/36066697: Avoid running static destructors.
_exit(1);
return 1;
}
Vector<DisplayInfo> configs;
@@ -192,8 +191,7 @@ int main(int argc, char** argv)
if (static_cast<size_t>(activeConfig) >= configs.size()) {
fprintf(stderr, "Active config %d not inside configs (size %zu)\n",
activeConfig, configs.size());
// b/36066697: Avoid running static destructors.
_exit(1);
return 1;
}
uint8_t displayOrientation = configs[activeConfig].orientation;
uint32_t captureOrientation = ORIENTATION_MAP[displayOrientation];
@@ -204,14 +202,14 @@ int main(int argc, char** argv)
&outBuffer);
if (result != NO_ERROR) {
close(fd);
_exit(1);
return 1;
}
result = outBuffer->lock(GraphicBuffer::USAGE_SW_READ_OFTEN, &base);
if (base == NULL) {
close(fd);
_exit(1);
return 1;
}
w = outBuffer->getWidth();
@@ -256,6 +254,5 @@ int main(int argc, char** argv)
munmap((void *)mapbase, mapsize);
}
// b/36066697: Avoid running static destructors.
_exit(0);
return 0;
}