Changeset View
Changeset View
Standalone View
Standalone View
intern/cycles/scene/image.cpp
| Show First 20 Lines • Show All 353 Lines • ▼ Show 20 Lines | |||||
| void ImageManager::load_image_metadata(Image *img) | void ImageManager::load_image_metadata(Image *img) | ||||
| { | { | ||||
| if (!img->need_metadata) { | if (!img->need_metadata) { | ||||
| return; | return; | ||||
| } | } | ||||
| thread_scoped_lock image_lock(img->mutex); | thread_scoped_lock image_lock(img->mutex); | ||||
| if (!img->need_metadata) { | |||||
brecht: This is not redundant, it's a double checked lock. | |||||
| return; | |||||
| } | |||||
| ImageMetaData &metadata = img->metadata; | ImageMetaData &metadata = img->metadata; | ||||
| metadata = ImageMetaData(); | metadata = ImageMetaData(); | ||||
| metadata.colorspace = img->params.colorspace; | metadata.colorspace = img->params.colorspace; | ||||
| if (img->loader->load_metadata(features, metadata)) { | if (img->loader->load_metadata(features, metadata)) { | ||||
| assert(metadata.type != IMAGE_DATA_NUM_TYPES); | assert(metadata.type != IMAGE_DATA_NUM_TYPES); | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 577 Lines • Show Last 20 Lines | |||||
This is not redundant, it's a double checked lock.