   Assert Triggered in CScriptWeakRef with AngelScript 2.28 samples/game
I've been meaning to use AngelScript for some time, but I'm just getting around to adding it. I thought I'd start with the sample game. I compiled it and ran the program, but after selecting an action, the program gives the following assert message "Assertion failed: strcmp(type->GetName(), "weakref") == 0, file ...\weakref.cpp line 85". I did some investigating and found that when I downgraded to 2.27 it works. So I tried just using the weakref.cpp file from 2.27 with 2.28 and it worked. I'm not experienced enough with AngelScript to figure out why it crashes, but here's the difference in the code 2.28 CrashesCScriptWeakRef::CScriptWeakRef(void *ref, asIObjectType *type){refCount = 1;m_ref  = ref;m_type = type;m_type->AddRef();// The given type should be the weakref template instanceassert( strcmp(type->GetName(), "weakref") == 0 );// Get the shared flag that will tell us when the object has been destroyed// This is threadsafe as we hold a strong reference to the objectm_weakRefFlag = m_type->GetEngine()->GetWeakRefFlagOfScriptObject(m_ref, m_type->GetSubType());if( m_weakRefFlag )m_weakRefFlag->AddRef();}2.27 WorksCScriptWeakRef::CScriptWeakRef(void *ref, asIObjectType *type){refCount = 1;m_ref  = ref;m_type = type;m_type->AddRef();// Get the shared flag that will tell us when the object has been destroyed// This is threadsafe as we hold a strong reference to the object m_weakRefFlag = m_type->GetEngine()->GetWeakRefFlagOfScriptObject(m_ref, m_type->GetSubType());if( m_weakRefFlag )m_weakRefFlag->AddRef();// Release the handle that was received, since the weakref isn't suppose to prevent the object from being destroyedm_type->GetEngine()->ReleaseScriptObject(m_ref, m_type->GetSubType());}I don't know enough about AngelScript to say if a script error (the script needs to be updated) or if there's a problem with the sample's C++ code.
I'll look into this. I think the bug is in the sample game on the C++ side, rather than in the weakref add-on.;The problem was with the assert(). It should expect either "weakref" or "const_weakref".  I've fixed this in revision 1801.  Regards,Andreas;  I'm glad it was a simple fix. I'm looking forward to giving this system a try. Thanks   