Remove dependency on Python.h from public API header
authorMarcus Comstedt <marcus@mc.pp.se>
Mon, 30 Jun 2014 22:07:40 +0000 (00:07 +0200)
committerBert Vermeulen <bert@biot.com>
Tue, 8 Jul 2014 13:42:44 +0000 (15:42 +0200)
This prevents Python.h from being included into client code, where
it can mess things up by e.g. redefining _POSIX_C_SOURCE.

13 files changed:
decoder.c
exception.c
instance.c
libsigrokdecode-internal.h
libsigrokdecode.h
log.c
module_sigrokdecode.c
session.c
srd.c
tests/runtc.c
type_decoder.c
type_logic.c
util.c

index 3a8c59d583faeef10877478b900291efdc998579..95f3ac5dafde6fa0cf8c6d75a10a9c3d26e90288 100644 (file)
--- a/decoder.c
+++ b/decoder.c
@@ -19,8 +19,8 @@
  */
 
 #include "config.h"
-#include "libsigrokdecode.h" /* First, so we avoid a _POSIX_C_SOURCE warning. */
-#include "libsigrokdecode-internal.h"
+#include "libsigrokdecode-internal.h" /* First, so we avoid a _POSIX_C_SOURCE warning. */
+#include "libsigrokdecode.h"
 #include <glib.h>
 
 /**
index 1ce66a875db44b23f4024545defe5bf8f08ac054..9c3fa48d29453321936d79f5f5df8d6b1789d11b 100644 (file)
@@ -17,8 +17,8 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "libsigrokdecode.h" /* First, so we avoid a _POSIX_C_SOURCE warning. */
-#include "libsigrokdecode-internal.h"
+#include "libsigrokdecode-internal.h" /* First, so we avoid a _POSIX_C_SOURCE warning. */
+#include "libsigrokdecode.h"
 #include "config.h"
 #include <stdarg.h>
 #include <glib.h>
index 8a5ddef044b9c10823c549b8551c1fa633a6c05f..732bbc31f26a9139c937061a5e33a1238e07ae92 100644 (file)
@@ -18,8 +18,8 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "libsigrokdecode.h" /* First, so we avoid a _POSIX_C_SOURCE warning. */
-#include "libsigrokdecode-internal.h"
+#include "libsigrokdecode-internal.h" /* First, so we avoid a _POSIX_C_SOURCE warning. */
+#include "libsigrokdecode.h"
 #include "config.h"
 #include <glib.h>
 #include <inttypes.h>
index f386cd70c0eeba34e267bca78a2a19a69cd0951c..73704107022efb415fbc21e082358d5feec47c88 100644 (file)
 #ifndef LIBSIGROKDECODE_LIBSIGROKDECODE_INTERNAL_H
 #define LIBSIGROKDECODE_LIBSIGROKDECODE_INTERNAL_H
 
+#include <Python.h> /* First, so we avoid a _POSIX_C_SOURCE warning. */
 #include "libsigrokdecode.h"
 
+/* Custom Python types: */
+
+typedef struct {
+       PyObject_HEAD
+       struct srd_decoder_inst *di;
+       uint64_t start_samplenum;
+       unsigned int itercnt;
+       uint8_t *inbuf;
+       uint64_t inbuflen;
+       PyObject *sample;
+} srd_logic;
+
 struct srd_session {
        int session_id;
 
index 9d2dbd323acfd0308421ee3b8b7d4c4b8592ddcb..7f75ab2d5baf2a16e1ef951d11d4653260ec2bd6 100644 (file)
@@ -22,7 +22,6 @@
 #ifndef LIBSIGROKDECODE_SIGROKDECODE_H
 #define LIBSIGROKDECODE_SIGROKDECODE_H
 
-#include <Python.h> /* First, so we avoid a _POSIX_C_SOURCE warning. */
 #include <stdint.h>
 #include <glib.h>
 
@@ -184,10 +183,10 @@ struct srd_decoder {
        GSList *options;
 
        /** Python module. */
-       PyObject *py_mod;
+       void *py_mod;
 
        /** sigrokdecode.Decoder class. */
-       PyObject *py_dec;
+       void *py_dec;
 };
 
 /**
@@ -221,7 +220,7 @@ struct srd_decoder_annotation_row {
 struct srd_decoder_inst {
        struct srd_decoder *decoder;
        struct srd_session *sess;
-       PyObject *py_inst;
+       void *py_inst;
        char *inst_id;
        GSList *pd_output;
        int dec_num_channels;
@@ -267,19 +266,6 @@ struct srd_pd_callback {
        void *cb_data;
 };
 
-/* Custom Python types: */
-
-typedef struct {
-       PyObject_HEAD
-       struct srd_decoder_inst *di;
-       uint64_t start_samplenum;
-       unsigned int itercnt;
-       uint8_t *inbuf;
-       uint64_t inbuflen;
-       PyObject *sample;
-} srd_logic;
-
-
 /* srd.c */
 SRD_API int srd_init(const char *path);
 SRD_API int srd_exit(void);
diff --git a/log.c b/log.c
index 1723a0e9fbc94807d17df6f97bc53bc8b0405012..9d0bc73d5fb18891d12222c0d4e15f922d998533 100644 (file)
--- a/log.c
+++ b/log.c
@@ -18,8 +18,8 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
  */
 
-#include "libsigrokdecode.h" /* First, so we avoid a _POSIX_C_SOURCE warning. */
-#include "libsigrokdecode-internal.h"
+#include "libsigrokdecode-internal.h" /* First, so we avoid a _POSIX_C_SOURCE warning. */
+#include "libsigrokdecode.h"
 #include <stdarg.h>
 #include <stdio.h>
 
index d5172d6febf5823dd22503c6c73604b3cfaa606e..7f7e8690c82897a0a34f2e42147fc8e6dc1c3f49 100644 (file)
@@ -17,8 +17,8 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "libsigrokdecode.h" /* First, so we avoid a _POSIX_C_SOURCE warning. */
-#include "libsigrokdecode-internal.h"
+#include "libsigrokdecode-internal.h" /* First, so we avoid a _POSIX_C_SOURCE warning. */
+#include "libsigrokdecode.h"
 #include "config.h"
 
 /** @cond PRIVATE */
index 24846c5e7c48522bbfa8d1ecb9dd6f2c9f0a3af9..6963a233b5617f3bf7a69635031d370d118f74a4 100644 (file)
--- a/session.c
+++ b/session.c
@@ -18,8 +18,8 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "libsigrokdecode.h" /* First, so we avoid a _POSIX_C_SOURCE warning. */
-#include "libsigrokdecode-internal.h"
+#include "libsigrokdecode-internal.h" /* First, so we avoid a _POSIX_C_SOURCE warning. */
+#include "libsigrokdecode.h"
 #include "config.h"
 #include <inttypes.h>
 #include <glib.h>
diff --git a/srd.c b/srd.c
index 599d190081621357222d815ccf8397ac7c33e9e2..8799de07374010b5774a694f8fc0f08739775d4b 100644 (file)
--- a/srd.c
+++ b/srd.c
@@ -18,8 +18,8 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "libsigrokdecode.h" /* First, so we avoid a _POSIX_C_SOURCE warning. */
-#include "libsigrokdecode-internal.h"
+#include "libsigrokdecode-internal.h" /* First, so we avoid a _POSIX_C_SOURCE warning. */
+#include "libsigrokdecode.h"
 #include "config.h"
 #include <glib.h>
 
index 9abd1123eb3c4ae58e516c0aa193531737451348..096ff1609e638c85b4952302e19b3b721a5dc7eb 100644 (file)
@@ -17,6 +17,7 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include <Python.h>
 #include "../libsigrokdecode.h"
 #include <libsigrok/libsigrok.h>
 #include <stdlib.h>
index 11c8ec0640e1996b16f352e30743f8214426947f..a7b23de996a19eb0fbe8bd92caa489a4c958e608 100644 (file)
@@ -17,8 +17,8 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "libsigrokdecode.h" /* First, so we avoid a _POSIX_C_SOURCE warning. */
-#include "libsigrokdecode-internal.h"
+#include "libsigrokdecode-internal.h" /* First, so we avoid a _POSIX_C_SOURCE warning. */
+#include "libsigrokdecode.h"
 #include "config.h"
 #include <inttypes.h>
 
index 436768033c78809e249fafd4895290d003a2512b..a33d9976dc5d42ba7b216abab39d0581ab9ff91a 100644 (file)
@@ -17,7 +17,8 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "libsigrokdecode.h" /* First, so we avoid a _POSIX_C_SOURCE warning. */
+#include "libsigrokdecode-internal.h" /* First, so we avoid a _POSIX_C_SOURCE warning. */
+#include "libsigrokdecode.h"
 #include "config.h"
 #include <inttypes.h>
 #include <string.h>
diff --git a/util.c b/util.c
index 1efaa843a603988bece2f59a9680ef06d71c08c8..c1b90404cbd43fd513363de5de34599ed7453387 100644 (file)
--- a/util.c
+++ b/util.c
@@ -18,8 +18,8 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "libsigrokdecode.h" /* First, so we avoid a _POSIX_C_SOURCE warning. */
-#include "libsigrokdecode-internal.h"
+#include "libsigrokdecode-internal.h" /* First, so we avoid a _POSIX_C_SOURCE warning. */
+#include "libsigrokdecode.h"
 #include "config.h"
 
 /**