From: John L. <jr...@us...> - 2008-01-15 06:31:17
|
Update of /cvsroot/wxlua/wxLua/bindings/wxwidgets In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv32329/wxLua/bindings/wxwidgets Modified Files: wxbase_override.hpp 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_override.hpp =================================================================== RCS file: /cvsroot/wxlua/wxLua/bindings/wxwidgets/wxbase_override.hpp,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** wxbase_override.hpp 22 Dec 2007 06:07:08 -0000 1.14 --- wxbase_override.hpp 15 Jan 2008 06:31:06 -0000 1.15 *************** *** 409,422 **** 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 --- 409,423 ---- 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 *************** *** 425,435 **** } 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 --- 426,440 ---- } 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 |