// `0x123` means the address of the object.
weakref<X> active(0x123);
free(0x123); // cache.push_back(0x123) And weakflag.Set(true)
0x123 = alloc(); // 0x123 = cache.pop_back()
weakref<X> tmp(0x123);
active = tmp; // Assignment is not executed because it is the following code
// weakref.cpp: ::operator =(const CScriptWeakRef &other)
// // Don't do anything if it is the same reference
// if( m_ref == other.m_ref )
// return *this;
if( active.get() is null ) {
println("is null!!!!");
}