diff Modules/_sqlite/sqlitecompat.h @ 59362:04d3ae52ff73 legacy-trunk

Merged code from pysqlite 2.6.0.
author Gerhard Häring <gh@ghaering.de>
date Fri, 05 Mar 2010 09:12:37 +0000
parents d27058c409df
children e9cd15d539e1
line wrap: on
line diff
--- a/Modules/_sqlite/sqlitecompat.h	Fri Mar 05 03:24:17 2010 +0000
+++ b/Modules/_sqlite/sqlitecompat.h	Fri Mar 05 09:12:37 2010 +0000
@@ -1,6 +1,6 @@
 /* sqlitecompat.h - compatibility macros
  *
- * Copyright (C) 2006 Gerhard Häring <gh@ghaering.de>
+ * Copyright (C) 2006-2010 Gerhard Häring <gh@ghaering.de>
  *
  * This file is part of pysqlite.
  *
@@ -21,6 +21,8 @@
  * 3. This notice may not be removed or altered from any source distribution.
  */
 
+#include "Python.h"
+
 #ifndef PYSQLITE_COMPAT_H
 #define PYSQLITE_COMPAT_H
 
@@ -31,4 +33,31 @@
 typedef int (*lenfunc)(PyObject*);
 #endif
 
+
+/* define PyDict_CheckExact for pre-2.4 versions of Python */
+#ifndef PyDict_CheckExact
+#define PyDict_CheckExact(op) ((op)->ob_type == &PyDict_Type)
 #endif
+
+/* define Py_CLEAR for pre-2.4 versions of Python */
+#ifndef Py_CLEAR
+#define Py_CLEAR(op)				\
+        do {                            	\
+                if (op) {			\
+                        PyObject *tmp = (PyObject *)(op);	\
+                        (op) = NULL;		\
+                        Py_DECREF(tmp);		\
+                }				\
+        } while (0)
+#endif
+
+#ifndef PyVarObject_HEAD_INIT
+#define PyVarObject_HEAD_INIT(type, size) \
+    PyObject_HEAD_INIT(type) size,
+#endif
+
+#ifndef Py_TYPE
+#define Py_TYPE(ob) ((ob)->ob_type)
+#endif
+
+#endif