Page 1 of 1

Deleting entity segfaults

Posted: Fri Oct 18, 2019 8:15 am
by andrew
From a QCAD user:
Why does this code segfault?

Code: Select all

var op = new RAddObjectsOperation();
op.addObject(entity);
di.applyOperation(op);

...

op = new RAddObjectsOperation();
op.deleteObject(entity);
di.applyOperation(op);

Re: Deleting entity segfaults

Posted: Fri Oct 18, 2019 8:16 am
by andrew
Entity pointers should not be used more than once in an operation. If you need to apply an operation on the same entity, you need to retrieve a new pointer first:

Code: Select all

var op = new RAddObjectsOperation();
op.addObject(entity);
di.applyOperation(op);
var id = entity.getId();

...

op = new RAddObjectsOperation();
entity = doc.queryEntity(id);
op.deleteObject(entity);
di.applyOperation(op);