46 _void_ptr = copy._void_ptr;
47 _ptr_was_deleted = copy._ptr_was_deleted;
49 if (is_valid_pointer()) {
50 To *ptr = (To *)_void_ptr;
76 if (ptr != (To *)_void_ptr || _ptr_was_deleted) {
77 To *old_ptr = (To *)_void_ptr;
79 _void_ptr = (
void *)ptr;
80 if (ptr != (To *)NULL) {
82 #ifdef DO_MEMORY_USAGE 83 if (MemoryUsage::get_track_memory_usage()) {
89 type = get_type_handle(To);
92 MemoryUsage::update_type(ptr, type);
99 if (old_ptr != (To *)NULL && !_ptr_was_deleted) {
100 old_ptr->weak_unref(
this);
103 _ptr_was_deleted =
false;
130 reassign((To *)copy._void_ptr);
143 return (To *)_void_ptr == other;
154 return (To *)_void_ptr != other;
165 return (To *)_void_ptr > other;
176 return (To *)_void_ptr <= other;
187 return (To *)_void_ptr >= other;
197 return (To *)_void_ptr == other;
208 return (To *)_void_ptr != other;
219 return (To *)_void_ptr > other;
230 return (To *)_void_ptr <= other;
241 return (To *)_void_ptr >= other;
252 return (To *)_void_ptr == (To *)other._void_ptr;
263 return (To *)_void_ptr != (To *)other._void_ptr;
274 return (To *)_void_ptr > (To *)other._void_ptr;
285 return (To *)_void_ptr <= (To *)other._void_ptr;
296 return (To *)_void_ptr >= (To *)other._void_ptr;
340 return (To *)_void_ptr <= (To *)((WeakPointerToBase<To> *)&other)->_void_ptr;
363 return (To *)_void_ptr < other;
374 return (To *)_void_ptr < (To *)other._void_ptr;
385 return (To *)_void_ptr < (To *)((WeakPointerToBase<To> *)&other)->_void_ptr;
401 reassign((To *)NULL);
434 }
else if (_void_ptr != (
void *)NULL) {
435 out <<
":" << ((To *)_void_ptr)->get_ref_count();
void refresh() const
Informs the WeakPointerTo object that its pointer is no longer deleted.
static TypeHandle none()
Returns a special zero-valued TypeHandle that is used to indicate no type.
void clear()
A convenient way to set the PointerTo object to NULL.
This is the base class for PointerTo and ConstPointerTo.
bool was_deleted() const
Returns true if the object we are pointing to has been deleted, false otherwise.
void output(ostream &out) const
A handy function to output PointerTo's as a hex pointer followed by a reference count.
TypeHandle is the identifier used to differentiate C++ class types.
This is the base class for PointerTo and ConstPointerTo.