Merge "Fix race condition in extension string creation" into main am: 5959d52278 am: 5ac4647aa9
Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/3147277
Change-Id: I93c80817e841f72e63b6c64fdad01eaba85cce4b
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/opengl/libs/EGL/egl_display.cpp b/opengl/libs/EGL/egl_display.cpp
index 5b5afd3..b1a287f 100644
--- a/opengl/libs/EGL/egl_display.cpp
+++ b/opengl/libs/EGL/egl_display.cpp
@@ -383,6 +383,14 @@
// before using cnx->major & cnx->minor
if (major != nullptr) *major = cnx->major;
if (minor != nullptr) *minor = cnx->minor;
+ auto mergeExtensionStrings = [](const std::vector<std::string>& strings) {
+ std::ostringstream combinedStringStream;
+ std::copy(strings.begin(), strings.end(),
+ std::ostream_iterator<std::string>(combinedStringStream, " "));
+ // gBuiltinExtensionString already has a trailing space so is added here
+ return gBuiltinExtensionString + combinedStringStream.str();
+ };
+ mExtensionString = mergeExtensionStrings(extensionStrings);
}
{ // scope for refLock
@@ -391,14 +399,6 @@
refCond.notify_all();
}
- auto mergeExtensionStrings = [](const std::vector<std::string>& strings) {
- std::ostringstream combinedStringStream;
- std::copy(strings.begin(), strings.end(),
- std::ostream_iterator<std::string>(combinedStringStream, " "));
- // gBuiltinExtensionString already has a trailing space so is added here
- return gBuiltinExtensionString + combinedStringStream.str();
- };
- mExtensionString = mergeExtensionStrings(extensionStrings);
return EGL_TRUE;
}