[Bf-blender-cvs] [a60536956e6] blender2.8: Color management: Fix issue when active views/displays are not specified
Sergey Sharybin
noreply at git.blender.org
Thu Dec 6 09:17:20 CET 2018
Commit: a60536956e69af3101b2bf29edb7a76fa4e74956
Author: Sergey Sharybin
Date: Thu Dec 6 09:16:52 2018 +0100
Branches: blender2.8
https://developer.blender.org/rBa60536956e69af3101b2bf29edb7a76fa4e74956
Color management: Fix issue when active views/displays are not specified
===================================================================
M intern/opencolorio/ocio_impl.cc
===================================================================
diff --git a/intern/opencolorio/ocio_impl.cc b/intern/opencolorio/ocio_impl.cc
index 4e159fb9ab4..4a6645f57b3 100644
--- a/intern/opencolorio/ocio_impl.cc
+++ b/intern/opencolorio/ocio_impl.cc
@@ -213,21 +213,24 @@ const char *OCIOImpl::configGetDefaultDisplay(OCIO_ConstConfigRcPtr *config)
if (getenv("OCIO_ACTIVE_DISPLAYS") == NULL) {
const char *active_displays =
(*(ConstConfigRcPtr *) config)->getActiveDisplays();
- const char *separator_pos = strchr(active_displays, ',');
- if (separator_pos == NULL) {
- return active_displays;
- }
- static std::string active_display;
- /* NOTE: Configuration is shared and is never changed during runtime,
- * so we only guarantee two threads don't initialize at the same. */
- static std::mutex mutex;
- mutex.lock();
- if (active_display.empty()) {
- active_display = active_displays;
- active_display[separator_pos - active_displays] = '\0';
+ if (active_displays[0] != '\0') {
+ const char *separator_pos = strchr(active_displays, ',');
+ if (separator_pos == NULL) {
+ return active_displays;
+ }
+ static std::string active_display;
+ /* NOTE: Configuration is shared and is never changed during
+ * runtime, so we only guarantee two threads don't initialize at the
+ * same. */
+ static std::mutex mutex;
+ mutex.lock();
+ if (active_display.empty()) {
+ active_display = active_displays;
+ active_display[separator_pos - active_displays] = '\0';
+ }
+ mutex.unlock();
+ return active_display.c_str();
}
- mutex.unlock();
- return active_display.c_str();
}
#endif
@@ -273,21 +276,23 @@ const char *OCIOImpl::configGetDefaultView(OCIO_ConstConfigRcPtr *config, const
if (getenv("OCIO_ACTIVE_VIEWS") == NULL) {
const char *active_views =
(*(ConstConfigRcPtr *) config)->getActiveViews();
- const char *separator_pos = strchr(active_views, ',');
- if (separator_pos == NULL) {
- return active_views;
- }
- static std::string active_view;
- /* NOTE: Configuration is shared and is never changed during runtime,
- * so we only guarantee two threads don't initialize at the same. */
- static std::mutex mutex;
- mutex.lock();
- if (active_view.empty()) {
- active_view = active_views;
- active_view[separator_pos - active_views] = '\0';
+ if (active_views[0] != '\0') {
+ const char *separator_pos = strchr(active_views, ',');
+ if (separator_pos == NULL) {
+ return active_views;
+ }
+ static std::string active_view;
+ /* NOTE: Configuration is shared and is never changed during runtime,
+ * so we only guarantee two threads don't initialize at the same. */
+ static std::mutex mutex;
+ mutex.lock();
+ if (active_view.empty()) {
+ active_view = active_views;
+ active_view[separator_pos - active_views] = '\0';
+ }
+ mutex.unlock();
+ return active_view.c_str();
}
- mutex.unlock();
- return active_view.c_str();
}
#endif
try {
More information about the Bf-blender-cvs
mailing list