From: John L. <jr...@us...> - 2007-12-13 06:23:59
|
Update of /cvsroot/wxlua/wxLua/modules/wxbind/src In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv11381/wxLua/modules/wxbind/src Modified Files: wxadv_adv.cpp wxaui_aui.cpp wxbase_base.cpp wxbase_config.cpp wxcore_clipdrag.cpp wxcore_gdi.cpp wxcore_help.cpp wxcore_image.cpp wxcore_mdi.cpp wxcore_menutool.cpp wxcore_print.cpp wxcore_windows.cpp wxxml_xml.cpp wxxrc_xrc.cpp Log Message: Second try at really allowing pushing the same object, but with different tags by tracking the userdata and have it fully clean up after itself. Index: wxbase_base.cpp =================================================================== RCS file: /cvsroot/wxlua/wxLua/modules/wxbind/src/wxbase_base.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** wxbase_base.cpp 13 Dec 2007 00:47:49 -0000 1.7 --- wxbase_base.cpp 13 Dec 2007 06:23:54 -0000 1.8 *************** *** 1282,1286 **** // wxLog pLogger wxLog * pLogger = (wxLog *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxLog); ! if (wxluaO_isgcobject(L, pLogger)) wxluaO_deletegcobject(L, pLogger, wxLUA_UNDELETE_OBJECT); // call SetActiveTarget wxLog* returns = (wxLog*)wxLog::SetActiveTarget(pLogger); --- 1282,1286 ---- // wxLog pLogger wxLog * pLogger = (wxLog *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxLog); ! if (wxluaO_isgcobject(L, pLogger)) wxluaO_undeletegcobject(L, pLogger); // call SetActiveTarget wxLog* returns = (wxLog*)wxLog::SetActiveTarget(pLogger); Index: wxxrc_xrc.cpp =================================================================== RCS file: /cvsroot/wxlua/wxLua/modules/wxbind/src/wxxrc_xrc.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** wxxrc_xrc.cpp 13 Dec 2007 00:47:51 -0000 1.7 --- wxxrc_xrc.cpp 13 Dec 2007 06:23:54 -0000 1.8 *************** *** 440,444 **** // wxXmlResource res wxXmlResource * res = (wxXmlResource *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxXmlResource); ! if (wxluaO_isgcobject(L, res)) wxluaO_deletegcobject(L, res, wxLUA_UNDELETE_OBJECT); // call Set wxXmlResource* returns = (wxXmlResource*)wxXmlResource::Set(res); --- 440,444 ---- // wxXmlResource res wxXmlResource * res = (wxXmlResource *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxXmlResource); ! if (wxluaO_isgcobject(L, res)) wxluaO_undeletegcobject(L, res); // call Set wxXmlResource* returns = (wxXmlResource*)wxXmlResource::Set(res); Index: wxbase_config.cpp =================================================================== RCS file: /cvsroot/wxlua/wxLua/modules/wxbind/src/wxbase_config.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** wxbase_config.cpp 13 Dec 2007 00:47:49 -0000 1.7 --- wxbase_config.cpp 13 Dec 2007 06:23:54 -0000 1.8 *************** *** 554,558 **** // wxConfigBase pConfig = NULL wxConfigBase * pConfig = (argCount >= 1 ? (wxConfigBase *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxConfigBase) : NULL); ! if (wxluaO_isgcobject(L, pConfig)) wxluaO_deletegcobject(L, pConfig, wxLUA_UNDELETE_OBJECT); // call Set wxConfigBase* returns = (wxConfigBase*)wxConfigBase::Set(pConfig); --- 554,558 ---- // wxConfigBase pConfig = NULL wxConfigBase * pConfig = (argCount >= 1 ? (wxConfigBase *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxConfigBase) : NULL); ! if (wxluaO_isgcobject(L, pConfig)) wxluaO_undeletegcobject(L, pConfig); // call Set wxConfigBase* returns = (wxConfigBase*)wxConfigBase::Set(pConfig); *************** *** 670,674 **** // we may not be tracked, but delete us anyway ! if (!wxluaO_deletegcobject(L, self, wxLUA_DELETE_REMOVE_OBJECT)) delete self; --- 670,674 ---- // we may not be tracked, but delete us anyway ! if (!wxluaO_deletegcobject(L, lua_touserdata(L, 1), self, WXLUA_DELETE_OBJECT_ALL)) delete self; Index: wxcore_print.cpp =================================================================== RCS file: /cvsroot/wxlua/wxLua/modules/wxbind/src/wxcore_print.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** wxcore_print.cpp 13 Dec 2007 00:47:49 -0000 1.7 --- wxcore_print.cpp 13 Dec 2007 06:23:54 -0000 1.8 *************** *** 3375,3380 **** // we must disconnect them from our tracking list if (printoutForPrinting != NULL) ! wxluaO_deletegcobject(L, printoutForPrinting, wxLUA_UNDELETE_OBJECT); ! wxluaO_deletegcobject(L, printout, wxLUA_UNDELETE_OBJECT); // call constructor --- 3375,3380 ---- // we must disconnect them from our tracking list if (printoutForPrinting != NULL) ! wxluaO_undeletegcobject(L, printoutForPrinting); ! wxluaO_undeletegcobject(L, printout); // call constructor Index: wxcore_windows.cpp =================================================================== RCS file: /cvsroot/wxlua/wxLua/modules/wxbind/src/wxcore_windows.cpp,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** wxcore_windows.cpp 13 Dec 2007 00:47:49 -0000 1.8 --- wxcore_windows.cpp 13 Dec 2007 06:23:54 -0000 1.9 *************** *** 3511,3515 **** // wxToolTip tip wxToolTip * tip = (wxToolTip *)wxluaT_getuserdatatype(L, 2, s_wxluatag_wxToolTip); ! if (wxluaO_isgcobject(L, tip)) wxluaO_deletegcobject(L, tip, wxLUA_UNDELETE_OBJECT); // get this wxWindow * self = (wxWindow *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxWindow); --- 3511,3515 ---- // wxToolTip tip wxToolTip * tip = (wxToolTip *)wxluaT_getuserdatatype(L, 2, s_wxluatag_wxToolTip); ! if (wxluaO_isgcobject(L, tip)) wxluaO_undeletegcobject(L, tip); // get this wxWindow * self = (wxWindow *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxWindow); Index: wxxml_xml.cpp =================================================================== RCS file: /cvsroot/wxlua/wxLua/modules/wxbind/src/wxxml_xml.cpp,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** wxxml_xml.cpp 13 Dec 2007 00:47:51 -0000 1.8 --- wxxml_xml.cpp 13 Dec 2007 06:23:54 -0000 1.9 *************** *** 37,41 **** // wxXmlNode child wxXmlNode * child = (wxXmlNode *)wxluaT_getuserdatatype(L, 2, s_wxluatag_wxXmlNode); ! if (wxluaO_isgcobject(L, child)) wxluaO_deletegcobject(L, child, wxLUA_UNDELETE_OBJECT); // get this wxXmlNode * self = (wxXmlNode *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxXmlNode); --- 37,41 ---- // wxXmlNode child wxXmlNode * child = (wxXmlNode *)wxluaT_getuserdatatype(L, 2, s_wxluatag_wxXmlNode); ! if (wxluaO_isgcobject(L, child)) wxluaO_undeletegcobject(L, child); // get this wxXmlNode * self = (wxXmlNode *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxXmlNode); *************** *** 54,58 **** // wxXmlProperty prop wxXmlProperty * prop = (wxXmlProperty *)wxluaT_getuserdatatype(L, 2, s_wxluatag_wxXmlProperty); ! if (wxluaO_isgcobject(L, prop)) wxluaO_deletegcobject(L, prop, wxLUA_UNDELETE_OBJECT); // get this wxXmlNode * self = (wxXmlNode *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxXmlNode); --- 54,58 ---- // wxXmlProperty prop wxXmlProperty * prop = (wxXmlProperty *)wxluaT_getuserdatatype(L, 2, s_wxluatag_wxXmlProperty); ! if (wxluaO_isgcobject(L, prop)) wxluaO_undeletegcobject(L, prop); // get this wxXmlNode * self = (wxXmlNode *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxXmlNode); *************** *** 284,288 **** // wxXmlNode child wxXmlNode * child = (wxXmlNode *)wxluaT_getuserdatatype(L, 2, s_wxluatag_wxXmlNode); ! if (wxluaO_isgcobject(L, child)) wxluaO_deletegcobject(L, child, wxLUA_UNDELETE_OBJECT); // get this wxXmlNode * self = (wxXmlNode *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxXmlNode); --- 284,288 ---- // wxXmlNode child wxXmlNode * child = (wxXmlNode *)wxluaT_getuserdatatype(L, 2, s_wxluatag_wxXmlNode); ! if (wxluaO_isgcobject(L, child)) wxluaO_undeletegcobject(L, child); // get this wxXmlNode * self = (wxXmlNode *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxXmlNode); *************** *** 325,329 **** // wxXmlNode child wxXmlNode * child = (wxXmlNode *)wxluaT_getuserdatatype(L, 2, s_wxluatag_wxXmlNode); ! if (wxluaO_isgcobject(L, child)) wxluaO_deletegcobject(L, child, wxLUA_UNDELETE_OBJECT); // get this wxXmlNode * self = (wxXmlNode *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxXmlNode); --- 325,329 ---- // wxXmlNode child wxXmlNode * child = (wxXmlNode *)wxluaT_getuserdatatype(L, 2, s_wxluatag_wxXmlNode); ! if (wxluaO_isgcobject(L, child)) wxluaO_undeletegcobject(L, child); // get this wxXmlNode * self = (wxXmlNode *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxXmlNode); *************** *** 406,410 **** // wxXmlProperty prop wxXmlProperty * prop = (wxXmlProperty *)wxluaT_getuserdatatype(L, 2, s_wxluatag_wxXmlProperty); ! if (wxluaO_isgcobject(L, prop)) wxluaO_deletegcobject(L, prop, wxLUA_UNDELETE_OBJECT); // get this wxXmlNode * self = (wxXmlNode *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxXmlNode); --- 406,410 ---- // wxXmlProperty prop wxXmlProperty * prop = (wxXmlProperty *)wxluaT_getuserdatatype(L, 2, s_wxluatag_wxXmlProperty); ! if (wxluaO_isgcobject(L, prop)) wxluaO_undeletegcobject(L, prop); // get this wxXmlNode * self = (wxXmlNode *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxXmlNode); *************** *** 934,938 **** // wxXmlNode node wxXmlNode * node = (wxXmlNode *)wxluaT_getuserdatatype(L, 2, s_wxluatag_wxXmlNode); ! if (wxluaO_isgcobject(L, node)) wxluaO_deletegcobject(L, node, wxLUA_UNDELETE_OBJECT); // get this wxXmlDocument * self = (wxXmlDocument *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxXmlDocument); --- 934,938 ---- // wxXmlNode node wxXmlNode * node = (wxXmlNode *)wxluaT_getuserdatatype(L, 2, s_wxluatag_wxXmlNode); ! if (wxluaO_isgcobject(L, node)) wxluaO_undeletegcobject(L, node); // get this wxXmlDocument * self = (wxXmlDocument *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxXmlDocument); Index: wxaui_aui.cpp =================================================================== RCS file: /cvsroot/wxlua/wxLua/modules/wxbind/src/wxaui_aui.cpp,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** wxaui_aui.cpp 13 Dec 2007 00:47:49 -0000 1.10 --- wxaui_aui.cpp 13 Dec 2007 06:23:54 -0000 1.11 *************** *** 6412,6416 **** // wxAuiDockArt art_provider wxAuiDockArt * art_provider = (wxAuiDockArt *)wxluaT_getuserdatatype(L, 2, s_wxluatag_wxAuiDockArt); ! if (wxluaO_isgcobject(L, art_provider)) wxluaO_deletegcobject(L, art_provider, wxLUA_UNDELETE_OBJECT); // get this wxAuiManager * self = (wxAuiManager *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxAuiManager); --- 6412,6416 ---- // wxAuiDockArt art_provider wxAuiDockArt * art_provider = (wxAuiDockArt *)wxluaT_getuserdatatype(L, 2, s_wxluatag_wxAuiDockArt); ! if (wxluaO_isgcobject(L, art_provider)) wxluaO_undeletegcobject(L, art_provider); // get this wxAuiManager * self = (wxAuiManager *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxAuiManager); *************** *** 8160,8164 **** // wxAuiTabArt provider wxAuiTabArt * provider = (wxAuiTabArt *)wxluaT_getuserdatatype(L, 2, s_wxluatag_wxAuiTabArt); ! if (wxluaO_isgcobject(L, provider)) wxluaO_deletegcobject(L, provider, wxLUA_UNDELETE_OBJECT); // get this wxAuiMDIParentFrame * self = (wxAuiMDIParentFrame *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxAuiMDIParentFrame); --- 8160,8164 ---- // wxAuiTabArt provider wxAuiTabArt * provider = (wxAuiTabArt *)wxluaT_getuserdatatype(L, 2, s_wxluatag_wxAuiTabArt); ! if (wxluaO_isgcobject(L, provider)) wxluaO_undeletegcobject(L, provider); // get this wxAuiMDIParentFrame * self = (wxAuiMDIParentFrame *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxAuiMDIParentFrame); Index: wxadv_adv.cpp =================================================================== RCS file: /cvsroot/wxlua/wxLua/modules/wxbind/src/wxadv_adv.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** wxadv_adv.cpp 13 Dec 2007 00:47:48 -0000 1.7 --- wxadv_adv.cpp 13 Dec 2007 06:23:54 -0000 1.8 *************** *** 2114,2118 **** // size_t day size_t day = (size_t)wxlua_getnumbertype(L, 2); ! if (wxluaO_isgcobject(L, attr)) wxluaO_deletegcobject(L, attr, wxLUA_UNDELETE_OBJECT); // get this wxCalendarCtrl * self = (wxCalendarCtrl *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxCalendarCtrl); --- 2114,2118 ---- // size_t day size_t day = (size_t)wxlua_getnumbertype(L, 2); ! if (wxluaO_isgcobject(L, attr)) wxluaO_undeletegcobject(L, attr); // get this wxCalendarCtrl * self = (wxCalendarCtrl *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxCalendarCtrl); Index: wxcore_clipdrag.cpp =================================================================== RCS file: /cvsroot/wxlua/wxLua/modules/wxbind/src/wxcore_clipdrag.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** wxcore_clipdrag.cpp 13 Dec 2007 00:47:49 -0000 1.7 --- wxcore_clipdrag.cpp 13 Dec 2007 06:23:54 -0000 1.8 *************** *** 44,48 **** // wxDataObject data wxDataObject * data = (wxDataObject *)wxluaT_getuserdatatype(L, 2, s_wxluatag_wxDataObject); ! if (wxluaO_isgcobject(L, data)) wxluaO_deletegcobject(L, data, wxLUA_UNDELETE_OBJECT); // get this wxClipboard * self = (wxClipboard *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxClipboard); --- 44,48 ---- // wxDataObject data wxDataObject * data = (wxDataObject *)wxluaT_getuserdatatype(L, 2, s_wxluatag_wxDataObject); ! if (wxluaO_isgcobject(L, data)) wxluaO_undeletegcobject(L, data); // get this wxClipboard * self = (wxClipboard *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxClipboard); *************** *** 203,207 **** // wxDataObject data wxDataObject * data = (wxDataObject *)wxluaT_getuserdatatype(L, 2, s_wxluatag_wxDataObject); ! if (wxluaO_isgcobject(L, data)) wxluaO_deletegcobject(L, data, wxLUA_UNDELETE_OBJECT); // get this wxClipboard * self = (wxClipboard *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxClipboard); --- 203,207 ---- // wxDataObject data wxDataObject * data = (wxDataObject *)wxluaT_getuserdatatype(L, 2, s_wxluatag_wxDataObject); ! if (wxluaO_isgcobject(L, data)) wxluaO_undeletegcobject(L, data); // get this wxClipboard * self = (wxClipboard *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxClipboard); *************** *** 875,879 **** // wxDataObjectSimple dataObject wxDataObjectSimple * dataObject = (wxDataObjectSimple *)wxluaT_getuserdatatype(L, 2, s_wxluatag_wxDataObjectSimple); ! if (wxluaO_isgcobject(L, dataObject)) wxluaO_deletegcobject(L, dataObject, wxLUA_UNDELETE_OBJECT); // get this wxDataObjectComposite * self = (wxDataObjectComposite *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxDataObjectComposite); --- 875,879 ---- // wxDataObjectSimple dataObject wxDataObjectSimple * dataObject = (wxDataObjectSimple *)wxluaT_getuserdatatype(L, 2, s_wxluatag_wxDataObjectSimple); ! if (wxluaO_isgcobject(L, dataObject)) wxluaO_undeletegcobject(L, dataObject); // get this wxDataObjectComposite * self = (wxDataObjectComposite *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxDataObjectComposite); Index: wxcore_help.cpp =================================================================== RCS file: /cvsroot/wxlua/wxLua/modules/wxbind/src/wxcore_help.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** wxcore_help.cpp 13 Dec 2007 00:47:49 -0000 1.7 --- wxcore_help.cpp 13 Dec 2007 06:23:54 -0000 1.8 *************** *** 250,254 **** // wxHelpProvider helpProvider wxHelpProvider * helpProvider = (wxHelpProvider *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxHelpProvider); ! if (wxluaO_isgcobject(L, helpProvider)) wxluaO_deletegcobject(L, helpProvider, wxLUA_UNDELETE_OBJECT); // call Set wxHelpProvider* returns = (wxHelpProvider*)wxHelpProvider::Set(helpProvider); --- 250,254 ---- // wxHelpProvider helpProvider wxHelpProvider * helpProvider = (wxHelpProvider *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxHelpProvider); ! if (wxluaO_isgcobject(L, helpProvider)) wxluaO_undeletegcobject(L, helpProvider); // call Set wxHelpProvider* returns = (wxHelpProvider*)wxHelpProvider::Set(helpProvider); Index: wxcore_gdi.cpp =================================================================== RCS file: /cvsroot/wxlua/wxLua/modules/wxbind/src/wxcore_gdi.cpp,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** wxcore_gdi.cpp 13 Dec 2007 00:47:49 -0000 1.9 --- wxcore_gdi.cpp 13 Dec 2007 06:23:54 -0000 1.10 *************** *** 8001,8005 **** // wxMask mask wxMask * mask = (wxMask *)wxluaT_getuserdatatype(L, 2, s_wxluatag_wxMask); ! if (wxluaO_isgcobject(L, mask)) wxluaO_deletegcobject(L, mask, wxLUA_UNDELETE_OBJECT); // get this wxBitmap * self = (wxBitmap *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxBitmap); --- 8001,8005 ---- // wxMask mask wxMask * mask = (wxMask *)wxluaT_getuserdatatype(L, 2, s_wxluatag_wxMask); ! if (wxluaO_isgcobject(L, mask)) wxluaO_undeletegcobject(L, mask); // get this wxBitmap * self = (wxBitmap *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxBitmap); *************** *** 14692,14696 **** // wxRendererNative renderer wxRendererNative * renderer = (wxRendererNative *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxRendererNative); ! if (wxluaO_isgcobject(L, renderer)) wxluaO_deletegcobject(L, renderer, wxLUA_UNDELETE_OBJECT); // call Set wxRendererNative* returns = (wxRendererNative*)wxRendererNative::Set(renderer); --- 14692,14696 ---- // wxRendererNative renderer wxRendererNative * renderer = (wxRendererNative *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxRendererNative); ! if (wxluaO_isgcobject(L, renderer)) wxluaO_undeletegcobject(L, renderer); // call Set wxRendererNative* returns = (wxRendererNative*)wxRendererNative::Set(renderer); Index: wxcore_menutool.cpp =================================================================== RCS file: /cvsroot/wxlua/wxLua/modules/wxbind/src/wxcore_menutool.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** wxcore_menutool.cpp 13 Dec 2007 00:47:49 -0000 1.7 --- wxcore_menutool.cpp 13 Dec 2007 06:23:54 -0000 1.8 *************** *** 43,47 **** // wxMenuItem menuItem wxMenuItem * menuItem = (wxMenuItem *)wxluaT_getuserdatatype(L, 2, s_wxluatag_wxMenuItem); ! if (wxluaO_isgcobject(L, menuItem)) wxluaO_deletegcobject(L, menuItem, wxLUA_UNDELETE_OBJECT); // get this wxMenu * self = (wxMenu *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxMenu); --- 43,47 ---- // wxMenuItem menuItem wxMenuItem * menuItem = (wxMenuItem *)wxluaT_getuserdatatype(L, 2, s_wxluatag_wxMenuItem); ! if (wxluaO_isgcobject(L, menuItem)) wxluaO_undeletegcobject(L, menuItem); // get this wxMenu * self = (wxMenu *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxMenu); *************** *** 70,74 **** // int id int id = (int)wxlua_getnumbertype(L, 2); ! if (wxluaO_isgcobject(L, subMenu)) wxluaO_deletegcobject(L, subMenu, wxLUA_UNDELETE_OBJECT); // get this wxMenu * self = (wxMenu *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxMenu); --- 70,74 ---- // int id int id = (int)wxlua_getnumbertype(L, 2); ! if (wxluaO_isgcobject(L, subMenu)) wxluaO_undeletegcobject(L, subMenu); // get this wxMenu * self = (wxMenu *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxMenu); *************** *** 442,446 **** // size_t pos size_t pos = (size_t)wxlua_getnumbertype(L, 2); ! if (wxluaO_isgcobject(L, item)) wxluaO_deletegcobject(L, item, wxLUA_UNDELETE_OBJECT); // get this wxMenu * self = (wxMenu *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxMenu); --- 442,446 ---- // size_t pos size_t pos = (size_t)wxlua_getnumbertype(L, 2); ! if (wxluaO_isgcobject(L, item)) wxluaO_undeletegcobject(L, item); // get this wxMenu * self = (wxMenu *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxMenu); *************** *** 595,599 **** // wxMenuItem item wxMenuItem * item = (wxMenuItem *)wxluaT_getuserdatatype(L, 2, s_wxluatag_wxMenuItem); ! if (wxluaO_isgcobject(L, item)) wxluaO_deletegcobject(L, item, wxLUA_UNDELETE_OBJECT); // get this wxMenu * self = (wxMenu *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxMenu); --- 595,599 ---- // wxMenuItem item wxMenuItem * item = (wxMenuItem *)wxluaT_getuserdatatype(L, 2, s_wxluatag_wxMenuItem); ! if (wxluaO_isgcobject(L, item)) wxluaO_undeletegcobject(L, item); // get this wxMenu * self = (wxMenu *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxMenu); *************** *** 1132,1136 **** // wxMenu menu wxMenu * menu = (wxMenu *)wxluaT_getuserdatatype(L, 2, s_wxluatag_wxMenu); ! if (wxluaO_isgcobject(L, menu)) wxluaO_deletegcobject(L, menu, wxLUA_UNDELETE_OBJECT); // get this wxMenuBar * self = (wxMenuBar *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxMenuBar); --- 1132,1136 ---- // wxMenu menu wxMenu * menu = (wxMenu *)wxluaT_getuserdatatype(L, 2, s_wxluatag_wxMenu); ! if (wxluaO_isgcobject(L, menu)) wxluaO_undeletegcobject(L, menu); // get this wxMenuBar * self = (wxMenuBar *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxMenuBar); *************** *** 1361,1365 **** // size_t pos size_t pos = (size_t)wxlua_getnumbertype(L, 2); ! if (wxluaO_isgcobject(L, menu)) wxluaO_deletegcobject(L, menu, wxLUA_UNDELETE_OBJECT); // get this wxMenuBar * self = (wxMenuBar *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxMenuBar); --- 1361,1365 ---- // size_t pos size_t pos = (size_t)wxlua_getnumbertype(L, 2); ! if (wxluaO_isgcobject(L, menu)) wxluaO_undeletegcobject(L, menu); // get this wxMenuBar * self = (wxMenuBar *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxMenuBar); *************** *** 1453,1457 **** // size_t pos size_t pos = (size_t)wxlua_getnumbertype(L, 2); ! if (wxluaO_isgcobject(L, menu)) wxluaO_deletegcobject(L, menu, wxLUA_UNDELETE_OBJECT); // get this wxMenuBar * self = (wxMenuBar *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxMenuBar); --- 1453,1457 ---- // size_t pos size_t pos = (size_t)wxlua_getnumbertype(L, 2); ! if (wxluaO_isgcobject(L, menu)) wxluaO_undeletegcobject(L, menu); // get this wxMenuBar * self = (wxMenuBar *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxMenuBar); Index: wxcore_image.cpp =================================================================== RCS file: /cvsroot/wxlua/wxLua/modules/wxbind/src/wxcore_image.cpp,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** wxcore_image.cpp 13 Dec 2007 00:47:49 -0000 1.8 --- wxcore_image.cpp 13 Dec 2007 06:23:54 -0000 1.9 *************** *** 43,47 **** // wxImageHandler handler wxImageHandler * handler = (wxImageHandler *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxImageHandler); ! if (wxluaO_isgcobject(L, handler)) wxluaO_deletegcobject(L, handler, wxLUA_UNDELETE_OBJECT); // call AddHandler wxImage::AddHandler(handler); --- 43,47 ---- // wxImageHandler handler wxImageHandler * handler = (wxImageHandler *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxImageHandler); ! if (wxluaO_isgcobject(L, handler)) wxluaO_undeletegcobject(L, handler); // call AddHandler wxImage::AddHandler(handler); *************** *** 800,804 **** // wxImageHandler handler wxImageHandler * handler = (wxImageHandler *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxImageHandler); ! if (wxluaO_isgcobject(L, handler)) wxluaO_deletegcobject(L, handler, wxLUA_UNDELETE_OBJECT); // call InsertHandler wxImage::InsertHandler(handler); --- 800,804 ---- // wxImageHandler handler wxImageHandler * handler = (wxImageHandler *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxImageHandler); ! if (wxluaO_isgcobject(L, handler)) wxluaO_undeletegcobject(L, handler); // call InsertHandler wxImage::InsertHandler(handler); *************** *** 3446,3450 **** // wxArtProvider provider wxArtProvider * provider = (wxArtProvider *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxArtProvider); ! if (wxluaO_isgcobject(L, provider)) wxluaO_deletegcobject(L, provider, wxLUA_UNDELETE_OBJECT); // call Delete bool returns = (wxArtProvider::Delete(provider)); --- 3446,3450 ---- // wxArtProvider provider wxArtProvider * provider = (wxArtProvider *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxArtProvider); ! if (wxluaO_isgcobject(L, provider)) wxluaO_undeletegcobject(L, provider); // call Delete bool returns = (wxArtProvider::Delete(provider)); *************** *** 3548,3552 **** // wxArtProvider provider wxArtProvider * provider = (wxArtProvider *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxArtProvider); ! if (wxluaO_isgcobject(L, provider)) wxluaO_deletegcobject(L, provider, wxLUA_UNDELETE_OBJECT); // call Insert wxArtProvider::Insert(provider); --- 3548,3552 ---- // wxArtProvider provider wxArtProvider * provider = (wxArtProvider *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxArtProvider); ! if (wxluaO_isgcobject(L, provider)) wxluaO_undeletegcobject(L, provider); // call Insert wxArtProvider::Insert(provider); *************** *** 3582,3586 **** // wxArtProvider provider wxArtProvider * provider = (wxArtProvider *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxArtProvider); ! if (wxluaO_isgcobject(L, provider)) wxluaO_deletegcobject(L, provider, wxLUA_UNDELETE_OBJECT); // call Push wxArtProvider::Push(provider); --- 3582,3586 ---- // wxArtProvider provider wxArtProvider * provider = (wxArtProvider *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxArtProvider); ! if (wxluaO_isgcobject(L, provider)) wxluaO_undeletegcobject(L, provider); // call Push wxArtProvider::Push(provider); Index: wxcore_mdi.cpp =================================================================== RCS file: /cvsroot/wxlua/wxLua/modules/wxbind/src/wxcore_mdi.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** wxcore_mdi.cpp 13 Dec 2007 00:47:49 -0000 1.7 --- wxcore_mdi.cpp 13 Dec 2007 06:23:54 -0000 1.8 *************** *** 205,209 **** // wxMenu menu wxMenu * menu = (wxMenu *)wxluaT_getuserdatatype(L, 2, s_wxluatag_wxMenu); ! if (wxluaO_isgcobject(L, menu)) wxluaO_deletegcobject(L, menu, wxLUA_UNDELETE_OBJECT); // get this wxMDIParentFrame * self = (wxMDIParentFrame *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxMDIParentFrame); --- 205,209 ---- // wxMenu menu wxMenu * menu = (wxMenu *)wxluaT_getuserdatatype(L, 2, s_wxluatag_wxMenu); ! if (wxluaO_isgcobject(L, menu)) wxluaO_undeletegcobject(L, menu); // get this wxMDIParentFrame * self = (wxMDIParentFrame *)wxluaT_getuserdatatype(L, 1, s_wxluatag_wxMDIParentFrame); |