int CCDynamicArray::Dispose(const char *address, bool force) { address -= 8; // If it's an array of managed objects, release // their ref counts long *elementCount = (long*)address; if (elementCount[0] & ARRAY_MANAGED_TYPE_FLAG) { elementCount[0] &= ~ARRAY_MANAGED_TYPE_FLAG; for (int i = 0; i < elementCount[0]; i++) { if (elementCount[2 + i] != NULL) { ccReleaseObjectReference(elementCount[2 + i]); } } } delete (void*)address; return 1; }
int IAGSEngine::DecrementManagedObjectRefCount(const char *address) { return ccReleaseObjectReference(GetManagedObjectKeyByAddress(address)); }