From: John L. <jr...@us...> - 2005-12-29 20:10:28
|
Update of /cvsroot/wxlua/wxLua/modules/wxlua/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20494 Modified Files: wxlstate.cpp Log Message: add "new" instances on bindings for each wxLuaState since the binding members are per lua_State Index: wxlstate.cpp =================================================================== RCS file: /cvsroot/wxlua/wxLua/modules/wxlua/src/wxlstate.cpp,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** wxlstate.cpp 22 Dec 2005 19:52:50 -0000 1.16 --- wxlstate.cpp 29 Dec 2005 20:10:19 -0000 1.17 *************** *** 49,54 **** extern int wxLuaClassListCompareByTag(const void *p1, const void *p2); // wxlbind.cpp ! extern const char* wxLuaNull; ! extern int s_wxluatag_wxWindow; --- 49,53 ---- extern int wxLuaClassListCompareByTag(const void *p1, const void *p2); // wxlbind.cpp ! const char wxLuaNull_[] = "wxNull"; // FIXME gcc can't link to this even if extern extern int s_wxluatag_wxWindow; *************** *** 88,95 **** // Stick us into the lua_State - push key, value ! lua_pushstring( L1, "__wxLuaStateRefData" ); ! lua_pushlightuserdata( L1, (void*)wxlState.GetRefData() ); // set the value ! lua_settable( L1, LUA_REGISTRYINDEX ); } --- 87,94 ---- // Stick us into the lua_State - push key, value ! //lua_pushstring( L1, "__wxLuaStateRefData" ); ! //lua_pushlightuserdata( L1, (void*)wxlState.GetRefData() ); // set the value ! //lua_settable( L1, LUA_REGISTRYINDEX ); } *************** *** 536,540 **** m_windowList.DeleteContents(false); ! m_bindings.DeleteContents(false); wxLuaBindingList::Node *node; --- 535,539 ---- m_windowList.DeleteContents(false); ! m_bindings.DeleteContents(true); // we add new copies of the bindings wxLuaBindingList::Node *node; *************** *** 542,546 **** { wxLuaBinding* binding = node->GetData(); ! m_bindings.Append(binding); } } --- 541,545 ---- { wxLuaBinding* binding = node->GetData(); ! m_bindings.Append(binding->Clone()); } } *************** *** 568,571 **** --- 567,578 ---- delete m_pDerivedList; delete m_pTrackedList; + + wxLuaBindingList::Node *node = m_bindings.GetFirst(); + while (node) + { + wxLuaBindingList::Node* next_node = node->GetNext(); + m_bindings.DeleteNode(node); // see m_bindings.DeleteContents(true) + node = next_node; + } } *************** *** 2017,2021 **** if (nTag == M_WXLSTATEDATA->m_wxLuaNull) ! return wxLuaNull; if (nTag == M_WXLSTATEDATA->m_functionTag) return "wxLuaFunction"; --- 2024,2028 ---- if (nTag == M_WXLSTATEDATA->m_wxLuaNull) ! return wxLuaNull_; if (nTag == M_WXLSTATEDATA->m_functionTag) return "wxLuaFunction"; |