Archived
This forum has been archived. Please start a new discussion on GitHub.
python constructor remembers default instance (slice2py)
When I try to generate python objects for the following ice definition:
and I would create 2 cursor instances:
One Point instance will be shared over both object. So:
Now I know this is normal python behavior, but I doubt if it is desirable. It had me baffled for a while.
Also generating code for Java and C++ will cause an empty constructor to initialize everything to null. At least than it is clear you need to initialize your own instance because you get a NPE if you try to access c1.point.x.
struct Point { int x; int y; } struct Cursor { Point point; }
and I would create 2 cursor instances:
c1 = Cursor() c2 = Cursor()
One Point instance will be shared over both object. So:
c1.point.x = 3will cause
print c2.point.xto print 3.
Now I know this is normal python behavior, but I doubt if it is desirable. It had me baffled for a while.
Also generating code for Java and C++ will cause an empty constructor to initialize everything to null. At least than it is clear you need to initialize your own instance because you get a NPE if you try to access c1.point.x.
0
Comments
-
Hi Vincent,
Thanks for reporting this. The current behavior is not the intended behavior. The intent was for the Cursor constructor to create a new instance of Point. We'll fix this bug.
Best regards,
Mark0 -
ok thanks! looking forward to the next release then0