mirror of https://github.com/KLayout/klayout.git
Fixed #39 (Action cannot be reassigned)
This commit is contained in:
parent
ad741d0eb7
commit
21e42788e6
|
|
@ -60,10 +60,18 @@ A::A (const A &a)
|
|||
: gsi::ObjectBase (a)
|
||||
{
|
||||
++a_count;
|
||||
e = a.e;
|
||||
m_d = a.m_d;
|
||||
n = a.n;
|
||||
f = a.f;
|
||||
operator= (a);
|
||||
}
|
||||
|
||||
A &A::operator= (const A &a)
|
||||
{
|
||||
if (this != &a) {
|
||||
e = a.e;
|
||||
m_d = a.m_d;
|
||||
n = a.n;
|
||||
f = a.f;
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
||||
int A::a0 ()
|
||||
|
|
|
|||
|
|
@ -81,6 +81,11 @@ struct A
|
|||
*/
|
||||
~A ();
|
||||
|
||||
/**
|
||||
* @brief Assignment
|
||||
*/
|
||||
A &operator= (const A &a);
|
||||
|
||||
/**
|
||||
* @brief A static method
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -764,7 +764,7 @@ object_assign (PyObject *self, PyObject *args)
|
|||
tl_assert (cls_decl_self != 0);
|
||||
|
||||
PyObject *src = NULL;
|
||||
if (! PyArg_ParseTuple (args, "o", &src)) {
|
||||
if (! PyArg_ParseTuple (args, "O", &src)) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
|
@ -778,7 +778,7 @@ object_assign (PyObject *self, PyObject *args)
|
|||
throw tl::Exception (tl::to_string (QObject::tr ("No assignment provided for class '%s'")), cls_decl_self->name ());
|
||||
}
|
||||
|
||||
cls_decl_self->assign (((PYAObjectBase *) self)->obj (), ((PYAObjectBase *) args)->obj ());
|
||||
cls_decl_self->assign (((PYAObjectBase *) self)->obj (), ((PYAObjectBase *) src)->obj ());
|
||||
|
||||
Py_INCREF (self);
|
||||
return self;
|
||||
|
|
|
|||
|
|
@ -118,6 +118,11 @@ class BasicTest(unittest.TestCase):
|
|||
a = pya.A.new_a(100)
|
||||
self.assertEqual( pya.A.a0(), ac0 + 1 )
|
||||
|
||||
a = pya.A()
|
||||
self.assertEqual(a.a1(), 17)
|
||||
a.assign(pya.A(110))
|
||||
self.assertEqual(a.a1(), 110)
|
||||
|
||||
a = None
|
||||
self.assertEqual( pya.A.a0(), ac0 )
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,10 @@
|
|||
# extend A
|
||||
class RBA::A
|
||||
|
||||
def initialize
|
||||
alias_method :org_initialize, :initialize
|
||||
|
||||
def initialize(*args)
|
||||
org_initialize(*args)
|
||||
@offset = nil
|
||||
end
|
||||
def s( o )
|
||||
|
|
@ -90,6 +93,11 @@ class Basic_TestClass < TestBase
|
|||
a = RBA::A.new_a(100)
|
||||
assert_equal( RBA::A::a0, ac0 + 1 )
|
||||
|
||||
a = RBA::A.new
|
||||
assert_equal(a.a1, 17)
|
||||
a.assign(RBA::A.new(110))
|
||||
assert_equal(a.a1, 110)
|
||||
|
||||
a = nil
|
||||
GC.start
|
||||
assert_equal( RBA::A::a0, ac0 )
|
||||
|
|
|
|||
Loading…
Reference in New Issue