Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2009-05-04 12:55:54 +0400
committerCampbell Barton <ideasman42@gmail.com>2009-05-04 12:55:54 +0400
commit2f7cd19ff520ff5a1a0f80a55cc5e68c802b7df5 (patch)
treed679af8428bb91e59c4cd92fd154a598618f0258 /source/gameengine/Expressions/PyObjectPlus.h
parent9248da811e7e0c1e8945d85a6520e74678d9e6c0 (diff)
print BGE Py api warnings only once to avoid flooding the terminal and slowing the game down too much, resets on loading scenes/blendfiles and restarting the game engine.
Diffstat (limited to 'source/gameengine/Expressions/PyObjectPlus.h')
-rw-r--r--source/gameengine/Expressions/PyObjectPlus.h40
1 files changed, 39 insertions, 1 deletions
diff --git a/source/gameengine/Expressions/PyObjectPlus.h b/source/gameengine/Expressions/PyObjectPlus.h
index f90a1436d00..449ece535c1 100644
--- a/source/gameengine/Expressions/PyObjectPlus.h
+++ b/source/gameengine/Expressions/PyObjectPlus.h
@@ -81,6 +81,36 @@ static inline void Py_Fatal(const char *M) {
exit(-1);
};
+
+/* Use with ShowDeprecationWarning macro */
+typedef struct {
+ bool warn_done;
+ void *link;
+} WarnLink;
+
+#define ShowDeprecationWarning(old_way, new_way) \
+{ \
+ static WarnLink wlink = {false, NULL}; \
+ if ((m_ignore_deprecation_warnings || wlink.warn_done)==0) \
+ { \
+ ShowDeprecationWarning_func(old_way, new_way); \
+ WarnLink *wlink_last= GetDeprecationWarningLinkLast(); \
+ ShowDeprecationWarning_func(old_way, new_way); \
+ wlink.warn_done = true; \
+ wlink.link = NULL; \
+ \
+ if(wlink_last) { \
+ wlink_last->link= (void *)&(wlink); \
+ SetDeprecationWarningLinkLast(&(wlink)); \
+ } else { \
+ SetDeprecationWarningFirst(&(wlink)); \
+ SetDeprecationWarningLinkLast(&(wlink)); \
+ } \
+ } \
+} \
+
+
+
typedef struct {
PyObject_HEAD /* required python macro */
class PyObjectPlus *ref;
@@ -461,13 +491,21 @@ public:
static bool m_ignore_deprecation_warnings;
+ static WarnLink* GetDeprecationWarningLinkFirst(void);
+ static WarnLink* GetDeprecationWarningLinkLast(void);
+ static void SetDeprecationWarningFirst(WarnLink* wlink);
+ static void SetDeprecationWarningLinkLast(WarnLink* wlink);
+ static void NullDeprecationWarning();
+
/** enable/disable display of deprecation warnings */
static void SetDeprecationWarnings(bool ignoreDeprecationWarnings);
/** Shows a deprecation warning */
- static void ShowDeprecationWarning(const char* method,const char* prop);
+ static void ShowDeprecationWarning_func(const char* method,const char* prop);
+ static void ClearDeprecationWarning();
};
+
PyObject *py_getattr_dict(PyObject *pydict, PyObject *tp_dict);
#endif // _adr_py_lib_h_