Example #1
0
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;
}
Example #2
0
int IAGSEngine::DecrementManagedObjectRefCount(const char *address) {
  return ccReleaseObjectReference(GetManagedObjectKeyByAddress(address));
}