WeakPtr(const WeakPtr<S>& src) { if (src.isValid()) { ptr = src.getRawPtr(); #ifdef WEAK_PTR_HAS_EXTRA_PTR_TO_COUNTERS heapObjectCounters = HeapObjectRefManipulator::getHeapObjectCounters(ptr); #endif HeapObjectRefManipulator::incWeakCounter(getHeapObjectCounters()); } else { ptr = NULL; #ifdef WEAK_PTR_HAS_EXTRA_PTR_TO_COUNTERS heapObjectCounters = NULL; #endif } }