fix silly segv
If you called vips_object_map() before any vips objects had been created, you got a segv.
This commit is contained in:
parent
f628b3c018
commit
1a42e75f80
@ -1238,11 +1238,16 @@ vips_object_map( VipsSListMap2Fn fn, void *a, void *b )
|
|||||||
args.a = a;
|
args.a = a;
|
||||||
args.b = b;
|
args.b = b;
|
||||||
args.result = NULL;
|
args.result = NULL;
|
||||||
g_mutex_lock( vips__object_all_lock );
|
|
||||||
if( vips__object_all )
|
/* We must test vips__object_all before we lock because the lock is
|
||||||
|
* only created when the first object is created.
|
||||||
|
*/
|
||||||
|
if( vips__object_all ) {
|
||||||
|
g_mutex_lock( vips__object_all_lock );
|
||||||
g_hash_table_foreach( vips__object_all,
|
g_hash_table_foreach( vips__object_all,
|
||||||
(GHFunc) vips_object_map_sub, &args );
|
(GHFunc) vips_object_map_sub, &args );
|
||||||
g_mutex_unlock( vips__object_all_lock );
|
g_mutex_unlock( vips__object_all_lock );
|
||||||
|
}
|
||||||
|
|
||||||
return( args.result );
|
return( args.result );
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user