Changeset View
Changeset View
Standalone View
Standalone View
source/blender/blenkernel/intern/anonymous_attribute.cc
| Show First 20 Lines • Show All 91 Lines • ▼ Show 20 Lines | void BKE_anonymous_attribute_id_increment_strong(const AnonymousAttributeID *anonymous_id) | ||||
| anonymous_id->refcount_tot.fetch_add(1); | anonymous_id->refcount_tot.fetch_add(1); | ||||
| anonymous_id->refcount_strong.fetch_add(1); | anonymous_id->refcount_strong.fetch_add(1); | ||||
| } | } | ||||
| void BKE_anonymous_attribute_id_decrement_weak(const AnonymousAttributeID *anonymous_id) | void BKE_anonymous_attribute_id_decrement_weak(const AnonymousAttributeID *anonymous_id) | ||||
| { | { | ||||
| const int new_refcount = anonymous_id->refcount_tot.fetch_sub(1) - 1; | const int new_refcount = anonymous_id->refcount_tot.fetch_sub(1) - 1; | ||||
| if (new_refcount == 0) { | if (new_refcount == 0) { | ||||
| BLI_assert(anonymous_id->refcount_strong == 0); | |||||
| delete anonymous_id; | delete anonymous_id; | ||||
| } | } | ||||
| } | } | ||||
| void BKE_anonymous_attribute_id_decrement_strong(const AnonymousAttributeID *anonymous_id) | void BKE_anonymous_attribute_id_decrement_strong(const AnonymousAttributeID *anonymous_id) | ||||
| { | { | ||||
| anonymous_id->refcount_strong.fetch_sub(1); | anonymous_id->refcount_strong.fetch_sub(1); | ||||
| BKE_anonymous_attribute_id_decrement_weak(anonymous_id); | BKE_anonymous_attribute_id_decrement_weak(anonymous_id); | ||||
| Show All 11 Lines | |||||