/** * Increments the java reference count of an object * * @param object */ protected void incrementRefCount(DestructibleObject object) { if (object != null && object.isValid()) { long address = object.getAddress(); if (trackedObjects.containsKey(address)) { TrackedObject trackedObject = trackedObjects.get(address); trackedObject.reference(false); log.debug("Incremented ref count: " + trackedObject.toString()); } else { TrackedObject trackedObject = new TrackedObject(object); trackedObjects.put(address, trackedObject); log.debug("Tracking new object: " + trackedObject.toString()); } } else { log.error("Cannot reference invalid object"); } }
public TrackedObject(DestructibleObject object) { address = object.getAddress(); className = object.getClass().getCanonicalName(); destructor = object.getDestructor(); javaRefCount = 1; }