Skip to content

Commit d2d5784

Browse files
committed
Add a safety check for CowData::_unref(), for when something tries to add elements during destruction.
1 parent 99f5a3d commit d2d5784

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

core/templates/cowdata.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -282,6 +282,12 @@ void CowData<T>::_unref() {
282282

283283
// Free memory.
284284
Memory::free_static((uint8_t *)prev_ptr - DATA_OFFSET, false);
285+
286+
#ifdef DEBUG_ENABLED
287+
// If any destructors access us through pointers, it is a bug.
288+
// We can't really test for that, but we can at least check no items have been added.
289+
ERR_FAIL_COND_MSG(_ptr != nullptr, "Internal bug, please report: CowData was modified during destruction.");
290+
#endif
285291
}
286292

287293
template <typename T>

0 commit comments

Comments
 (0)