|
10 | 10 | #include "dpl/Opendp.h" |
11 | 11 | #include "utl/Logger.h" |
12 | 12 |
|
13 | | - |
14 | | - |
15 | | -namespace dpl { |
16 | | - |
17 | | -using std::vector; |
18 | | - |
19 | | -// Swig vector type in does not seem to work at all. |
20 | | -// (see odb/src/swig/common/polgon.i) |
21 | | -// Copied from opensta/tcl/StaTcl.i |
22 | | -template <class TYPE> |
23 | | -vector<TYPE> * |
24 | | -tclListSeq(Tcl_Obj *const source, |
25 | | - swig_type_info *swig_type, |
26 | | - Tcl_Interp *interp) |
27 | | -{ |
28 | | - int argc; |
29 | | - Tcl_Obj **argv; |
30 | | - |
31 | | - if (Tcl_ListObjGetElements(interp, source, &argc, &argv) == TCL_OK |
32 | | - && argc > 0) { |
33 | | - vector<TYPE> *seq = new vector<TYPE>; |
34 | | - for (int i = 0; i < argc; i++) { |
35 | | - void *obj; |
36 | | - // Ignore returned TCL_ERROR because can't get swig_type_info. |
37 | | - SWIG_ConvertPtr(argv[i], &obj, swig_type, false); |
38 | | - seq->push_back(reinterpret_cast<TYPE>(obj)); |
39 | | - } |
40 | | - return seq; |
41 | | - } |
42 | | - else |
43 | | - return nullptr; |
44 | | -} |
45 | | - |
46 | | -dpl::dbMasterSeq * |
47 | | -tclListSeqdbMaster(Tcl_Obj *const source, |
48 | | - Tcl_Interp *interp) |
49 | | -{ |
50 | | - return tclListSeq<odb::dbMaster*>(source, SWIGTYPE_p_odb__dbMaster, interp); |
51 | | -} |
52 | | - |
53 | | -} |
54 | | - |
55 | 13 | %} |
56 | 14 |
|
57 | 15 | %include "../../Exception.i" |
58 | 16 |
|
59 | | -%typemap(in) dpl::dbMasterSeq * { |
60 | | - $1 = dpl::tclListSeqdbMaster($input, interp); |
61 | | -} |
| 17 | +%import <std_vector.i> |
| 18 | +%import "dbtypes.i" |
62 | 19 |
|
63 | 20 | %inline %{ |
64 | 21 |
|
@@ -114,7 +71,7 @@ set_padding_inst(odb::dbInst *inst, |
114 | 71 | } |
115 | 72 |
|
116 | 73 | void |
117 | | -filler_placement_cmd(dpl::dbMasterSeq *filler_masters, |
| 74 | +filler_placement_cmd(const std::vector<odb::dbMaster*>& filler_masters, |
118 | 75 | const char* prefix, |
119 | 76 | bool verbose) |
120 | 77 | { |
|
0 commit comments