diff options
| author | Tavmjong Bah <tavmjong@free.fr> | 2019-10-18 12:54:47 +0000 |
|---|---|---|
| committer | Tavmjong Bah <tavmjong@free.fr> | 2019-10-18 12:54:47 +0000 |
| commit | ca8f8f8e647393e937e4c8f7ff5a029d30fbbd18 (patch) | |
| tree | 252dba87bab464165633210f892fd4c8a9a578c9 /src/object/sp-object.h | |
| parent | fix heap-use-after-free (diff) | |
| download | inkscape-ca8f8f8e647393e937e4c8f7ff5a029d30fbbd18.tar.gz inkscape-ca8f8f8e647393e937e4c8f7ff5a029d30fbbd18.zip | |
Make href and unhref member functions of SPObject.
Diffstat (limited to 'src/object/sp-object.h')
| -rw-r--r-- | src/object/sp-object.h | 46 |
1 files changed, 21 insertions, 25 deletions
diff --git a/src/object/sp-object.h b/src/object/sp-object.h index 190f24253..77e5947ad 100644 --- a/src/object/sp-object.h +++ b/src/object/sp-object.h @@ -154,31 +154,6 @@ SPObject *sp_object_ref(SPObject *object, SPObject *owner=nullptr); SPObject *sp_object_unref(SPObject *object, SPObject *owner=nullptr); /** - * Increase weak refcount. - * - * Hrefcount is used for weak references, for example, to - * determine whether any graphical element references a certain gradient - * node. - * @param owner Ignored. - * @return object, NULL is error - * \pre object points to real object - * @todo need to move this to be a member of SPObject. - */ -SPObject *sp_object_href(SPObject *object, SPObject* owner); - -/** - * Decrease weak refcount. - * - * Hrefcount is used for weak references, for example, to determine whether - * any graphical element references a certain gradient node. - * @param owner Ignored. - * @return always NULL - * \pre object points to real object and hrefcount>0 - * @todo need to move this to be a member of SPObject. - */ -SPObject *sp_object_hunref(SPObject *object, SPObject* owner); - -/** * SPObject is an abstract base class of all of the document nodes at the * SVG document level. Each SPObject subclass implements a certain SVG * element node type, or is an abstract base class for different node @@ -447,6 +422,27 @@ public: } /** + * Increase weak refcount. + * + * Hrefcount is used for weak references, for example, to + * determine whether any graphical element references a certain gradient + * node. + * It keeps a list of "owners". + * @param owner Used to track who uses this object. + */ + void hrefObject(SPObject* owner = nullptr); + + /** + * Decrease weak refcount. + * + * Hrefcount is used for weak references, for example, to determine whether + * any graphical element references a certain gradient node. + * @param owner Used to track who uses this object. + * \pre hrefcount>0 + */ + void unhrefObject(SPObject* owner = nullptr); + + /** * Check if object is referenced by any other object. */ bool isReferenced() { return ( _total_hrefcount > 0 ); } |
