[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [48262] trunk/blender: more guardedalloc use in C++, also make compositorMutex a static var, was allocated and never freed.

Campbell Barton ideasman42 at gmail.com
Mon Jun 25 12:35:37 CEST 2012


Revision: 48262
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=48262
Author:   campbellbarton
Date:     2012-06-25 10:35:24 +0000 (Mon, 25 Jun 2012)
Log Message:
-----------
more guardedalloc use in C++, also make compositorMutex a static var, was allocated and never freed.

Modified Paths:
--------------
    trunk/blender/CMakeLists.txt
    trunk/blender/intern/ghost/GHOST_ISystem.h
    trunk/blender/intern/ghost/GHOST_ISystemPaths.h
    trunk/blender/intern/ghost/GHOST_ITimerTask.h
    trunk/blender/intern/ghost/GHOST_Types.h
    trunk/blender/intern/ghost/intern/GHOST_CallbackEventConsumer.h
    trunk/blender/intern/ghost/intern/GHOST_DisplayManager.h
    trunk/blender/intern/ghost/intern/GHOST_EventManager.h
    trunk/blender/intern/ghost/intern/GHOST_SystemPaths.h
    trunk/blender/intern/ghost/intern/GHOST_TimerManager.h
    trunk/blender/intern/guardedalloc/cpp/mallocn.cpp
    trunk/blender/source/blender/compositor/intern/COM_ChunkOrderHotspot.h
    trunk/blender/source/blender/compositor/intern/COM_ExecutionSystem.cpp
    trunk/blender/source/blender/compositor/intern/COM_NodeOperation.h
    trunk/blender/source/blender/compositor/intern/COM_Socket.h
    trunk/blender/source/blender/compositor/intern/COM_SocketReader.h
    trunk/blender/source/blender/compositor/intern/COM_compositor.cpp
    trunk/blender/source/gameengine/Expressions/PyObjectPlus.h

Modified: trunk/blender/CMakeLists.txt
===================================================================
--- trunk/blender/CMakeLists.txt	2012-06-25 09:20:25 UTC (rev 48261)
+++ trunk/blender/CMakeLists.txt	2012-06-25 10:35:24 UTC (rev 48262)
@@ -1723,6 +1723,7 @@
 # better not set includes here but this debugging option is off by default.
 if(WITH_CXX_GUARDEDALLOC)
 	include_directories(${CMAKE_SOURCE_DIR}/intern/guardedalloc)
+	add_definitions(-DWITH_CXX_GUARDEDALLOC)
 endif()
 
 if(WITH_ASSERT_ABORT)

Modified: trunk/blender/intern/ghost/GHOST_ISystem.h
===================================================================
--- trunk/blender/intern/ghost/GHOST_ISystem.h	2012-06-25 09:20:25 UTC (rev 48261)
+++ trunk/blender/intern/ghost/GHOST_ISystem.h	2012-06-25 10:35:24 UTC (rev 48262)
@@ -415,14 +415,9 @@
 	/** The one and only system */
 	static GHOST_ISystem *m_system;
 
+
 #ifdef WITH_CXX_GUARDEDALLOC
-public:
-	void *operator new(size_t num_bytes) {
-		return MEM_mallocN(num_bytes, "GHOST:GHOST_ISystem");
-	}
-	void operator delete(void *mem) {
-		MEM_freeN(mem);
-	}
+	MEM_CXX_CLASS_ALLOC_FUNCS("GHOST:GHOST_ISystem")
 #endif
 };
 

Modified: trunk/blender/intern/ghost/GHOST_ISystemPaths.h
===================================================================
--- trunk/blender/intern/ghost/GHOST_ISystemPaths.h	2012-06-25 09:20:25 UTC (rev 48261)
+++ trunk/blender/intern/ghost/GHOST_ISystemPaths.h	2012-06-25 10:35:24 UTC (rev 48262)
@@ -98,6 +98,11 @@
 private:
 	/** The one and only system paths*/
 	static GHOST_ISystemPaths *m_systemPaths;
+
+
+#ifdef WITH_CXX_GUARDEDALLOC
+	MEM_CXX_CLASS_ALLOC_FUNCS("GHOST:GHOST_ISystemPaths")
+#endif
 };
 
 #endif

Modified: trunk/blender/intern/ghost/GHOST_ITimerTask.h
===================================================================
--- trunk/blender/intern/ghost/GHOST_ITimerTask.h	2012-06-25 09:20:25 UTC (rev 48261)
+++ trunk/blender/intern/ghost/GHOST_ITimerTask.h	2012-06-25 10:35:24 UTC (rev 48262)
@@ -84,14 +84,9 @@
 	 */
 	virtual void setUserData(const GHOST_TUserDataPtr userData) = 0;
 
+
 #ifdef WITH_CXX_GUARDEDALLOC
-public:
-	void *operator new(size_t num_bytes) {
-		return MEM_mallocN(num_bytes, "GHOST:GHOST_ITimerTask");
-	}
-	void operator delete(void *mem) {
-		MEM_freeN(mem);
-	}
+	MEM_CXX_CLASS_ALLOC_FUNCS("GHOST:GHOST_ITimerTask")
 #endif
 };
 

Modified: trunk/blender/intern/ghost/GHOST_Types.h
===================================================================
--- trunk/blender/intern/ghost/GHOST_Types.h	2012-06-25 09:20:25 UTC (rev 48261)
+++ trunk/blender/intern/ghost/GHOST_Types.h	2012-06-25 10:35:24 UTC (rev 48262)
@@ -37,7 +37,11 @@
 #include "MEM_guardedalloc.h"
 #endif
 
-#define GHOST_DECLARE_HANDLE(name) typedef struct name##__ { int unused; } *name
+#if defined(WITH_CXX_GUARDEDALLOC) && defined(__cplusplus)
+#  define GHOST_DECLARE_HANDLE(name) typedef struct name##__ { int unused; MEM_CXX_CLASS_ALLOC_FUNCS(#name) } *name
+#else
+#  define GHOST_DECLARE_HANDLE(name) typedef struct name##__ { int unused; } *name
+#endif
 
 typedef char GHOST_TInt8;
 typedef unsigned char GHOST_TUns8;

Modified: trunk/blender/intern/ghost/intern/GHOST_CallbackEventConsumer.h
===================================================================
--- trunk/blender/intern/ghost/intern/GHOST_CallbackEventConsumer.h	2012-06-25 09:20:25 UTC (rev 48261)
+++ trunk/blender/intern/ghost/intern/GHOST_CallbackEventConsumer.h	2012-06-25 10:35:24 UTC (rev 48262)
@@ -73,6 +73,10 @@
 	GHOST_EventCallbackProcPtr m_eventCallback;
 	/** The data passed back though the call-back routine. */
 	GHOST_TUserDataPtr m_userData;
+
+#ifdef WITH_CXX_GUARDEDALLOC
+	MEM_CXX_CLASS_ALLOC_FUNCS("GHOST:GHOST_CallbackEventConsumer")
+#endif
 };
 
 #endif // __GHOST_CALLBACKEVENTCONSUMER_H__

Modified: trunk/blender/intern/ghost/intern/GHOST_DisplayManager.h
===================================================================
--- trunk/blender/intern/ghost/intern/GHOST_DisplayManager.h	2012-06-25 09:20:25 UTC (rev 48261)
+++ trunk/blender/intern/ghost/intern/GHOST_DisplayManager.h	2012-06-25 10:35:24 UTC (rev 48262)
@@ -133,6 +133,11 @@
 	bool m_settingsInitialized;
 	/** The list with display settings for the main display. */
 	std::vector<GHOST_DisplaySettings> m_settings;
+
+
+#ifdef WITH_CXX_GUARDEDALLOC
+	MEM_CXX_CLASS_ALLOC_FUNCS("GHOST:GHOST_DisplayManager")
+#endif
 };
 
 

Modified: trunk/blender/intern/ghost/intern/GHOST_EventManager.h
===================================================================
--- trunk/blender/intern/ghost/intern/GHOST_EventManager.h	2012-06-25 09:20:25 UTC (rev 48261)
+++ trunk/blender/intern/ghost/intern/GHOST_EventManager.h	2012-06-25 10:35:24 UTC (rev 48262)
@@ -168,6 +168,11 @@
 
 	/** The list with event consumers. */
 	TConsumerVector m_consumers;
+
+
+#ifdef WITH_CXX_GUARDEDALLOC
+	MEM_CXX_CLASS_ALLOC_FUNCS("GHOST:GHOST_EventManager")
+#endif
 };
 
 #endif // __GHOST_EVENTMANAGER_H__

Modified: trunk/blender/intern/ghost/intern/GHOST_SystemPaths.h
===================================================================
--- trunk/blender/intern/ghost/intern/GHOST_SystemPaths.h	2012-06-25 09:20:25 UTC (rev 48261)
+++ trunk/blender/intern/ghost/intern/GHOST_SystemPaths.h	2012-06-25 10:35:24 UTC (rev 48262)
@@ -57,7 +57,7 @@
 	 */
 	virtual const GHOST_TUns8 *getSystemDir(int version, const char *versionstr) const = 0;
 
-    /**
+	/**
 	  * Determine the base dir in which user configuration is stored, including versioning.
 	  * If needed, it will create the base directory.
 	  * @return Unsigned char string pointing to user dir (eg ~/.blender/).
@@ -74,7 +74,6 @@
 	 * Add the file to the operating system most recently used files
 	 */
 	virtual void addToSystemRecentFiles(const char *filename) const = 0;
-
 };
 
 #endif

Modified: trunk/blender/intern/ghost/intern/GHOST_TimerManager.h
===================================================================
--- trunk/blender/intern/ghost/intern/GHOST_TimerManager.h	2012-06-25 09:20:25 UTC (rev 48261)
+++ trunk/blender/intern/ghost/intern/GHOST_TimerManager.h	2012-06-25 10:35:24 UTC (rev 48262)
@@ -119,6 +119,11 @@
 	typedef std::vector<GHOST_TimerTask *> TTimerVector;
 	/** The list with event consumers. */
 	TTimerVector m_timers;
+
+
+#ifdef WITH_CXX_GUARDEDALLOC
+	MEM_CXX_CLASS_ALLOC_FUNCS("GHOST:GHOST_TimerManager")
+#endif
 };
 
 #endif // __GHOST_TIMERMANAGER_H__

Modified: trunk/blender/intern/guardedalloc/cpp/mallocn.cpp
===================================================================
--- trunk/blender/intern/guardedalloc/cpp/mallocn.cpp	2012-06-25 09:20:25 UTC (rev 48261)
+++ trunk/blender/intern/guardedalloc/cpp/mallocn.cpp	2012-06-25 10:35:24 UTC (rev 48262)
@@ -28,20 +28,36 @@
 #include <new>
 #include "../MEM_guardedalloc.h"
 
-void* operator new (size_t size)
+/* not default but can be used when needing to set a string */
+void *operator new(size_t size, const char *str)
 {
-	return MEM_mallocN(size, "C++/anonymous");
+	return MEM_mallocN(size, str);
 }
-
-/* not default but can be used when needing to set a string */
-void* operator new (size_t size, const char *str)
+void *operator new[](size_t size, const char *str)
 {
 	return MEM_mallocN(size, str);
 }
 
-void operator delete (void *p)
+
+void *operator new(size_t size)
 {
+	return MEM_mallocN(size, "C++/anonymous");
+}
+void *operator new[](size_t size)
+{
+	return MEM_mallocN(size, "C++/anonymous[]");
+}
+
+
+void operator delete(void *p)
+{
 	/* delete NULL is valid in c++ */
-	if(p)
+	if (p)
 		MEM_freeN(p);
 }
+void operator delete[](void *p)
+{
+	/* delete NULL is valid in c++ */
+	if (p)
+		MEM_freeN(p);
+}

Modified: trunk/blender/source/blender/compositor/intern/COM_ChunkOrderHotspot.h
===================================================================
--- trunk/blender/source/blender/compositor/intern/COM_ChunkOrderHotspot.h	2012-06-25 09:20:25 UTC (rev 48261)
+++ trunk/blender/source/blender/compositor/intern/COM_ChunkOrderHotspot.h	2012-06-25 10:35:24 UTC (rev 48262)
@@ -23,6 +23,10 @@
 #ifndef _COM_ChunkOrderHotSpot_h_
 #define _COM_ChunkOrderHotSpot_h_
 
+#ifdef WITH_CXX_GUARDEDALLOC
+#include "MEM_guardedalloc.h"
+#endif
+
 class ChunkOrderHotspot {
 private:
 	int x;
@@ -32,6 +36,11 @@
 public:
 	ChunkOrderHotspot(int x, int y, float addition);
 	double determineDistance(int x, int y);
+
+
+#ifdef WITH_CXX_GUARDEDALLOC
+	MEM_CXX_CLASS_ALLOC_FUNCS("COM:ChunkOrderHotspot")
+#endif
 };
 
 #endif

Modified: trunk/blender/source/blender/compositor/intern/COM_ExecutionSystem.cpp
===================================================================
--- trunk/blender/source/blender/compositor/intern/COM_ExecutionSystem.cpp	2012-06-25 09:20:25 UTC (rev 48261)
+++ trunk/blender/source/blender/compositor/intern/COM_ExecutionSystem.cpp	2012-06-25 10:35:24 UTC (rev 48262)
@@ -41,6 +41,10 @@
 
 #include "BKE_global.h"
 
+#ifdef WITH_CXX_GUARDEDALLOC
+#include "MEM_guardedalloc.h"
+#endif
+
 ExecutionSystem::ExecutionSystem(RenderData *rd, bNodeTree *editingtree, bool rendering)
 {
 	context.setbNodeTree(editingtree);

Modified: trunk/blender/source/blender/compositor/intern/COM_NodeOperation.h
===================================================================
--- trunk/blender/source/blender/compositor/intern/COM_NodeOperation.h	2012-06-25 09:20:25 UTC (rev 48261)
+++ trunk/blender/source/blender/compositor/intern/COM_NodeOperation.h	2012-06-25 10:35:24 UTC (rev 48262)
@@ -270,6 +270,10 @@
 	 * @brief set if this NodeOperation can be scheduled on a OpenCLDevice
 	 */
 	void setOpenCL(bool openCL) { this->openCL = openCL; }
+
+#ifdef WITH_CXX_GUARDEDALLOC
+	MEM_CXX_CLASS_ALLOC_FUNCS("COM:NodeOperation")
+#endif
 };
 
 #endif

Modified: trunk/blender/source/blender/compositor/intern/COM_Socket.h
===================================================================
--- trunk/blender/source/blender/compositor/intern/COM_Socket.h	2012-06-25 09:20:25 UTC (rev 48261)
+++ trunk/blender/source/blender/compositor/intern/COM_Socket.h	2012-06-25 10:35:24 UTC (rev 48262)
@@ -29,6 +29,10 @@
 #include "DNA_node_types.h"
 #include "COM_defines.h"
 
+#ifdef WITH_CXX_GUARDEDALLOC
+#include "MEM_guardedalloc.h"
+#endif
+
 using namespace std;
 class SocketConnection;
 class NodeBase;

Modified: trunk/blender/source/blender/compositor/intern/COM_SocketReader.h
===================================================================
--- trunk/blender/source/blender/compositor/intern/COM_SocketReader.h	2012-06-25 09:20:25 UTC (rev 48261)

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list