From: John L. <jr...@us...> - 2008-01-15 06:31:17
|
Update of /cvsroot/wxlua/wxLua/modules/wxbind/src In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv32329/wxLua/modules/wxbind/src Modified Files: wxbase_data.cpp Log Message: Fix bad commit for wxlua.cpp the wxLua executable so it doesn't immediately exit. Make wxObject:DynamicCast a little more verbose and robust Index: wxbase_data.cpp =================================================================== RCS file: /cvsroot/wxlua/wxLua/modules/wxbind/src/wxbase_data.cpp,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** wxbase_data.cpp 22 Dec 2007 06:07:11 -0000 1.12 --- wxbase_data.cpp 15 Jan 2008 06:31:06 -0000 1.13 *************** *** 529,542 **** if (className != NULL) { ! lua_pushvalue(L, 1); wxObject *pObject = (wxObject *)wxlua_touserdata(L, 1, false); ! const wxLuaBindClass *pClass = wxluaT_getclass(L, className); ! if (pClass && pClass->classInfo) { ! if (pObject->IsKindOf(pClass->classInfo)) { ! if (*pClass->wxluatype != wxluaT_type(L, 1)) ! wxluaT_pushuserdatatype(L, pObject, *pClass->wxluatype); else lua_pushvalue(L, 1); // return same userdata --- 529,543 ---- if (className != NULL) { ! // The userdata object must be derived from a wxObject for this ! // function be be called. wxObject *pObject = (wxObject *)wxlua_touserdata(L, 1, false); ! const wxLuaBindClass *wxlClass = wxluaT_getclass(L, className); ! if (pObject && wxlClass && wxlClass->classInfo) { ! if (pObject->IsKindOf(wxlClass->classInfo)) { ! if (*wxlClass->wxluatype != wxluaT_type(L, 1)) ! wxluaT_pushuserdatatype(L, pObject, *wxlClass->wxluatype); else lua_pushvalue(L, 1); // return same userdata *************** *** 545,555 **** } else ! wxlua_argerrormsg(L, wxString::Format(wxT("wxLua: wxObject::DynamicCast() Unable to cast a '%s' to a '%s'."), ! pObject->GetClassInfo()->GetClassName(), lua2wx(className).c_str())); } if (iResult == 0) ! wxlua_argerrormsg(L, wxString::Format(wxT("wxLua: wxObject::DynamicCast() Invalid class to cast a '%s' to '%s'."), ! pObject->GetClassInfo()->GetClassName(), lua2wx(className).c_str())); } else --- 546,560 ---- } else ! wxlua_argerrormsg(L, wxString::Format(wxT("wxLua: wxObject::DynamicCast() Unable to cast a '%s' to a '%s' with wxClassInfo '%s'."), ! pObject->GetClassInfo()->GetClassName(), ! lua2wx(className).c_str(), ! wxString(wxlClass ? wxlClass->classInfo->GetClassName() : wxT("Unknown")).c_str())); } if (iResult == 0) ! wxlua_argerrormsg(L, wxString::Format(wxT("wxLua: wxObject::DynamicCast() Cannot cast a wxLua type '%s' with wxClassInfo '%s' to a '%s'."), ! wxluaT_gettypename(L, 1).c_str(), ! wxString(pObject ? pObject->GetClassInfo()->GetClassName() : wxT("Unknown")).c_str(), ! lua2wx(className).c_str())); } else |