0b74f0f...
by
Rafael Siejakowski <email address hidden>
Improve error handling when building extensions
Guard against the possibility of creating an extension with a
null implementation.
7b92b54...
by
Rafael Siejakowski <email address hidden>
Do not leak Extension implementations
The implementations of extensions have a dual ownership model: either
they are created and owned by Inkscape, or they are owned by an
external library. To prevent memory leaks, a helper class is provided
which manages this dual ownership situation; an Extension object now
holds an instance of this class.
When building extensions from memory, we create owning pointer to these
extensions implementations by calling std::make_unique(). In fact, the
migration from operator `new` to `std::make_unique()` is responsible for
most of the diff in this commit.
fb1b0e6...
by
Rafael Siejakowski <email address hidden>
Fix inheritance of Extension Implementations
Make sure that derived classes of Implementation inherit from it
publicly. Since Implementation is a base class enabling run-time
polymorphism of extension implementations, public inheritance
should be used.
ede3264...
by
Rafael Siejakowski <email address hidden>