From 771d4fbadc18626dafe534bb58b7c29d8d7c6ef2 Mon Sep 17 00:00:00 2001 From: mental Date: Mon, 1 May 2006 03:42:42 +0000 Subject: [PATCH] log finalization of NRObjects --- ChangeLog | 6 ++++++ src/libnr/nr-object.cpp | 22 ++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/ChangeLog b/ChangeLog index ec057ee4c..84fc74a4d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,12 @@ * src/dialogs/inkscape-preferences.cpp: Moved 'compass like display of angles' from 'windows' to 'steps'. +2006-04-30 MenTaLguY + + * src/libnr/nr-object.cpp: + + log finalization of NRObjects + 2006-04-29 Jon Phillips * src/dialogs/rdf.cpp: Updated cc licenses to 2.5 by default. diff --git a/src/libnr/nr-object.cpp b/src/libnr/nr-object.cpp index b18685d11..feffbd884 100644 --- a/src/libnr/nr-object.cpp +++ b/src/libnr/nr-object.cpp @@ -13,9 +13,15 @@ #include #include +#include + #include #include "nr-object.h" +#include "debug/event-tracker.h" +#include "debug/simple-event.h" +#include "util/share.h" +#include "util/format.h" unsigned int nr_emit_fail_warning(const gchar *file, unsigned int line, const gchar *method, const gchar *expr) { @@ -150,9 +156,25 @@ static void nr_class_tree_object_invoke_init(NRObjectClass *c, NRObject *object) namespace { +namespace Debug = Inkscape::Debug; +namespace Util = Inkscape::Util; + +typedef Debug::SimpleEvent BaseFinalizerEvent; + +class FinalizerEvent : public BaseFinalizerEvent { +public: + FinalizerEvent(NRObject *object) + : BaseFinalizerEvent(Util::share_static_string("nr-object-finalizer")) + { + _addProperty("object", Util::format("%p", object)); + _addProperty("class", Util::share_static_string(typeid(*object).name())); + } +}; + void finalize_object(void *base, void *) { NRObject *object = reinterpret_cast(base); + Debug::EventTracker tracker(object); object->klass->finalize(object); object->~NRObject(); } -- 2.30.2