BOARD::Add now it's wrapped in python and clears the .thisown flag on python to avoid GC from deleting the object later (BOARD will do)
This commit is contained in:
parent
173b869dcb
commit
96c1a50e00
|
@ -1,11 +1,14 @@
|
|||
* add MODULE::Add (see BOARD:Add), to make it more clean
|
||||
|
||||
* Tell swig(somehow) to forget automatic object deletion after adding
|
||||
a BOARD_ITEM to BOARD object (it will be automatically deleted by BOARD,
|
||||
* Tell swig to forget automatic object deletion after adding
|
||||
a BOARD_ITEM to MODULE object (it will be automatically deleted by MODULE,
|
||||
leading to Segmentation Fault when unloading our python module (double free).
|
||||
|
||||
* implement iterator for NETCLASSES (NETCLASS) see class_netclass.h
|
||||
It seems that we must do object.thisown=0 when added, may be adding a wrapper
|
||||
Add function.
|
||||
|
||||
* add MODULE::Add (see BOARD:Add), to make it more clean
|
||||
|
||||
* Implement iterator for NETCLASSES (NETCLASS) see class_netclass.h
|
||||
|
||||
* Saving modules to library (in librairi.cpp)
|
||||
|
||||
|
@ -22,5 +25,6 @@
|
|||
to kicad plugin?
|
||||
|
||||
|
||||
void PCB_EDIT_FRAME::ArchiveModulesOnBoard( const wxString& aLibName, bool aNewModulesOnly )
|
||||
|
||||
|
||||
|
|
|
@ -45,6 +45,15 @@
|
|||
|
||||
def Save(self,filename):
|
||||
return SaveBoard(filename,self)
|
||||
|
||||
#
|
||||
# add function, clears the thisown to avoid python from deleting
|
||||
# the object in the garbage collector
|
||||
#
|
||||
|
||||
def Add(self,item):
|
||||
item.thisown=0
|
||||
self.AddNative(item)
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -57,6 +66,7 @@
|
|||
%rename(Get) operator MODULE*;
|
||||
%rename(Get) operator SEGZONE*;
|
||||
|
||||
|
||||
// we must translate C++ templates to scripting languages
|
||||
|
||||
%template(BOARD_ITEM_List) DLIST<BOARD_ITEM>;
|
||||
|
|
|
@ -36,6 +36,8 @@
|
|||
%ignore BOARD_ITEM::ZeroOffset;
|
||||
%ignore D_PAD::m_PadSketchModePenSize;
|
||||
|
||||
%rename(AddNative) *::Add;
|
||||
|
||||
// this is what it must be included in the wrapper .cxx code to compile
|
||||
|
||||
%{
|
||||
|
|
|
@ -55,7 +55,7 @@
|
|||
|
||||
%rename(getWxRect) operator wxRect;
|
||||
%ignore operator <<;
|
||||
%ignore operator =;
|
||||
%ignore operator=;
|
||||
|
||||
|
||||
%{
|
||||
|
|
Loading…
Reference in New Issue