free method

void free(
  1. Pointer<NativeType> pointer
)

Free a specific pointer and remove from tracking

Implementation

void free(Pointer pointer) {
  if (_disposed) {
    _logWarning('Attempted to free pointer after MemoryManager disposed');
    return;
  }

  try {
    if (_allocatedPointers.remove(pointer)) {
      calloc.free(pointer);
    } else {
      _logWarning('Attempted to free untracked pointer at address: ${pointer.address}');
    }
  } catch (e) {
    _logError('Failed to free pointer at address ${pointer.address}: $e');
    // Don't throw - best effort cleanup
  }
}