Coder Social home page Coder Social logo

ndicapi's People

Contributors

adamrankin avatar dzhoshkun avatar fmilano avatar golafsoun avatar matemus960 avatar sunderlandkyl avatar

Watchers

 avatar

Forkers

adamrankin

ndicapi's Issues

Increment reference to each new object returned from C to Python

Otherwise an invalid pointer error occurs as in the following sample trace:

*** Error in `/usr/bin/python': free(): invalid pointer: 0x00007fbe56d57138 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x777e5)[0x7fbe5663c7e5]
/lib/x86_64-linux-gnu/libc.so.6(+0x8037a)[0x7fbe5664537a]
/lib/x86_64-linux-gnu/libc.so.6(cfree+0x4c)[0x7fbe5664953c]
/usr/bin/python(PyDict_SetItem+0x442)[0x4a0d82]
/usr/bin/python(_PyModule_Clear+0x133)[0x5027e3]
/usr/bin/python(PyImport_Cleanup+0x1ac)[0x50234c]
/usr/bin/python(Py_Finalize+0x89)[0x5000b9]
/usr/bin/python(Py_Main+0x4ad)[0x49dfed]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7fbe565e5830]
/usr/bin/python(_start+0x29)[0x49da59]
======= Memory map: ========
00400000-006e9000 r-xp 00000000 08:03 20972751                           /usr/bin/python2.7
008e8000-008ea000 r--p 002e8000 08:03 20972751                           /usr/bin/python2.7
008ea000-00961000 rw-p 002ea000 08:03 20972751                           /usr/bin/python2.7
00961000-00984000 rw-p 00000000 00:00 0 
012ed000-013d5000 rw-p 00000000 00:00 0                                  [heap]
7fbe50000000-7fbe50021000 rw-p 00000000 00:00 0 
7fbe50021000-7fbe54000000 ---p 00000000 00:00 0 
7fbe54a67000-7fbe54d59000 r-xp 00000000 08:03 20981546                   /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
7fbe54d59000-7fbe54f59000 ---p 002f2000 08:03 20981546                   /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
7fbe54f59000-7fbe54f5b000 r--p 002f2000 08:03 20981546                   /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
7fbe54f5b000-7fbe54fd2000 rw-p 002f4000 08:03 20981546                   /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
7fbe54fd2000-7fbe54ff5000 rw-p 00000000 00:00 0 
7fbe54ff5000-7fbe5500b000 r-xp 00000000 08:03 1446295                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7fbe5500b000-7fbe5520a000 ---p 00016000 08:03 1446295                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7fbe5520a000-7fbe5520b000 rw-p 00015000 08:03 1446295                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7fbe5520b000-7fbe5537d000 r-xp 00000000 08:03 20971918                   /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
7fbe5537d000-7fbe5557d000 ---p 00172000 08:03 20971918                   /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
7fbe5557d000-7fbe55587000 r--p 00172000 08:03 20971918                   /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
7fbe55587000-7fbe55589000 rw-p 0017c000 08:03 20971918                   /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
7fbe55589000-7fbe5558d000 rw-p 00000000 00:00 0 
7fbe5558d000-7fbe555a8000 r-xp 00000000 08:02 1978429                    /home/dzhoshkun/ws/_i/ndicapi/lib/libndicapi.so
7fbe555a8000-7fbe557a7000 ---p 0001b000 08:02 1978429                    /home/dzhoshkun/ws/_i/ndicapi/lib/libndicapi.so
7fbe557a7000-7fbe557a8000 r--p 0001a000 08:02 1978429                    /home/dzhoshkun/ws/_i/ndicapi/lib/libndicapi.so
7fbe557a8000-7fbe557aa000 rw-p 0001b000 08:02 1978429                    /home/dzhoshkun/ws/_i/ndicapi/lib/libndicapi.so
7fbe557aa000-7fbe557c1000 r-xp 00000000 08:02 2098951                    /home/dzhoshkun/.local/lib/python2.7/site-packages/pyndicapi.so
7fbe557c1000-7fbe559c0000 ---p 00017000 08:02 2098951                    /home/dzhoshkun/.local/lib/python2.7/site-packages/pyndicapi.so
7fbe559c0000-7fbe559c1000 r--p 00016000 08:02 2098951                    /home/dzhoshkun/.local/lib/python2.7/site-packages/pyndicapi.so
7fbe559c1000-7fbe559c3000 rw-p 00017000 08:02 2098951                    /home/dzhoshkun/.local/lib/python2.7/site-packages/pyndicapi.so
7fbe559c3000-7fbe55c9b000 r--p 00000000 08:03 20972417                   /usr/lib/locale/locale-archive
7fbe55c9b000-7fbe55da3000 r-xp 00000000 08:03 1445867                    /lib/x86_64-linux-gnu/libm-2.23.so
7fbe55da3000-7fbe55fa2000 ---p 00108000 08:03 1445867                    /lib/x86_64-linux-gnu/libm-2.23.so
7fbe55fa2000-7fbe55fa3000 r--p 00107000 08:03 1445867                    /lib/x86_64-linux-gnu/libm-2.23.so
7fbe55fa3000-7fbe55fa4000 rw-p 00108000 08:03 1445867                    /lib/x86_64-linux-gnu/libm-2.23.so
7fbe55fa4000-7fbe55fbd000 r-xp 00000000 08:03 1441797                    /lib/x86_64-linux-gnu/libz.so.1.2.8
7fbe55fbd000-7fbe561bc000 ---p 00019000 08:03 1441797                    /lib/x86_64-linux-gnu/libz.so.1.2.8
7fbe561bc000-7fbe561bd000 r--p 00018000 08:03 1441797                    /lib/x86_64-linux-gnu/libz.so.1.2.8
7fbe561bd000-7fbe561be000 rw-p 00019000 08:03 1441797                    /lib/x86_64-linux-gnu/libz.so.1.2.8
7fbe561be000-7fbe561c0000 r-xp 00000000 08:03 1445890                    /lib/x86_64-linux-gnu/libutil-2.23.so
7fbe561c0000-7fbe563bf000 ---p 00002000 08:03 1445890                    /lib/x86_64-linux-gnu/libutil-2.23.so
7fbe563bf000-7fbe563c0000 r--p 00001000 08:03 1445890                    /lib/x86_64-linux-gnu/libutil-2.23.so
7fbe563c0000-7fbe563c1000 rw-p 00002000 08:03 1445890                    /lib/x86_64-linux-gnu/libutil-2.23.so
7fbe563c1000-7fbe563c4000 r-xp 00000000 08:03 1445885                    /lib/x86_64-linux-gnu/libdl-2.23.so
7fbe563c4000-7fbe565c3000 ---p 00003000 08:03 1445885                    /lib/x86_64-linux-gnu/libdl-2.23.so
7fbe565c3000-7fbe565c4000 r--p 00002000 08:03 1445885                    /lib/x86_64-linux-gnu/libdl-2.23.so
7fbe565c4000-7fbe565c5000 rw-p 00003000 08:03 1445885                    /lib/x86_64-linux-gnu/libdl-2.23.so
7fbe565c5000-7fbe56785000 r-xp 00000000 08:03 1445883                    /lib/x86_64-linux-gnu/libc-2.23.so
7fbe56785000-7fbe56985000 ---p 001c0000 08:03 1445883                    /lib/x86_64-linux-gnu/libc-2.23.so
7fbe56985000-7fbe56989000 r--p 001c0000 08:03 1445883                    /lib/x86_64-linux-gnu/libc-2.23.so
7fbe56989000-7fbe5698b000 rw-p 001c4000 08:03 1445883                    /lib/x86_64-linux-gnu/libc-2.23.so
7fbe5698b000-7fbe5698f000 rw-p 00000000 00:00 0 
7fbe5698f000-7fbe569a7000 r-xp 00000000 08:03 1445874                    /lib/x86_64-linux-gnu/libpthread-2.23.so
7fbe569a7000-7fbe56ba6000 ---p 00018000 08:03 1445874                    /lib/x86_64-linux-gnu/libpthread-2.23.so
7fbe56ba6000-7fbe56ba7000 r--p 00017000 08:03 1445874                    /lib/x86_64-linux-gnu/libpthread-2.23.so
7fbe56ba7000-7fbe56ba8000 rw-p 00018000 08:03 1445874                    /lib/x86_64-linux-gnu/libpthread-2.23.so
7fbe56ba8000-7fbe56bac000 rw-p 00000000 00:00 0 
7fbe56bac000-7fbe56bd2000 r-xp 00000000 08:03 1445872                    /lib/x86_64-linux-gnu/ld-2.23.so
7fbe56c52000-7fbe56d88000 rw-p 00000000 00:00 0 
7fbe56d90000-7fbe56dd1000 rw-p 00000000 00:00 0 
7fbe56dd1000-7fbe56dd2000 r--p 00025000 08:03 1445872                    /lib/x86_64-linux-gnu/ld-2.23.so
7fbe56dd2000-7fbe56dd3000 rw-p 00026000 08:03 1445872                    /lib/x86_64-linux-gnu/ld-2.23.so
7fbe56dd3000-7fbe56dd4000 rw-p 00000000 00:00 0 
7ffe6e0f2000-7ffe6e113000 rw-p 00000000 00:00 0                          [stack]
7ffe6e171000-7ffe6e174000 r--p 00000000 00:00 0                          [vvar]
7ffe6e174000-7ffe6e176000 r-xp 00000000 00:00 0                          [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]
The program has unexpectedly finished.
/usr/bin/python crashed.

Also see this comment

PyObject returned by PyNDIBitfield_FromUnsignedLong causes double free or corruption error

As of 2599de8 using the Python module leads to a double free or corruption error (sample trace attached to the end of description).

I've managed to trace it down to the use of the PyNDIBitfield_FromUnsignedLong function.

The PyNDIBitfieldObject returned by this function does not seem to be used anywhere in the codebase.
So maybe it should be removed altogether?

The following is a sample trace of the error on my Ubuntu 16.04.3 LTS:

*** Error in `python': double free or corruption (out): 0x00007ff56ef41b70 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x777e5)[0x7ff56e8267e5]
/lib/x86_64-linux-gnu/libc.so.6(+0x8037a)[0x7ff56e82f37a]
/lib/x86_64-linux-gnu/libc.so.6(cfree+0x4c)[0x7ff56e83353c]
python[0x434ccd]
python(PyObject_RichCompare+0x230)[0x4acba0]
python(PyEval_EvalFrameEx+0x6218)[0x4ca188]
python(PyEval_EvalCodeEx+0x255)[0x4c2705]
python(PyEval_EvalCode+0x19)[0x4c24a9]
python[0x4f19ef]
python(PyRun_FileExFlags+0x82)[0x4ec372]
python(PyRun_SimpleFileExFlags+0x191)[0x4eaaf1]
python(Py_Main+0x6c8)[0x49e208]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7ff56e7cf830]
python(_start+0x29)[0x49da59]
======= Memory map: ========
00400000-006e9000 r-xp 00000000 08:03 20972751                           /usr/bin/python2.7
008e8000-008ea000 r--p 002e8000 08:03 20972751                           /usr/bin/python2.7
008ea000-00961000 rw-p 002ea000 08:03 20972751                           /usr/bin/python2.7
00961000-00984000 rw-p 00000000 00:00 0 
02357000-02440000 rw-p 00000000 00:00 0                                  [heap]
7ff568000000-7ff568021000 rw-p 00000000 00:00 0 
7ff568021000-7ff56c000000 ---p 00000000 00:00 0 
7ff56cc51000-7ff56cf43000 r-xp 00000000 08:03 20981546                   /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
7ff56cf43000-7ff56d143000 ---p 002f2000 08:03 20981546                   /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
7ff56d143000-7ff56d145000 r--p 002f2000 08:03 20981546                   /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
7ff56d145000-7ff56d1bc000 rw-p 002f4000 08:03 20981546                   /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
7ff56d1bc000-7ff56d1df000 rw-p 00000000 00:00 0 
7ff56d1df000-7ff56d1f5000 r-xp 00000000 08:03 1446295                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7ff56d1f5000-7ff56d3f4000 ---p 00016000 08:03 1446295                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7ff56d3f4000-7ff56d3f5000 rw-p 00015000 08:03 1446295                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7ff56d3f5000-7ff56d567000 r-xp 00000000 08:03 20971918                   /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
7ff56d567000-7ff56d767000 ---p 00172000 08:03 20971918                   /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
7ff56d767000-7ff56d771000 r--p 00172000 08:03 20971918                   /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
7ff56d771000-7ff56d773000 rw-p 0017c000 08:03 20971918                   /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
7ff56d773000-7ff56d777000 rw-p 00000000 00:00 0 
7ff56d777000-7ff56d792000 r-xp 00000000 08:02 1991959                    /home/dzhoshkun/ws/_i/ndicapi/lib/libndicapi.so
7ff56d792000-7ff56d991000 ---p 0001b000 08:02 1991959                    /home/dzhoshkun/ws/_i/ndicapi/lib/libndicapi.so
7ff56d991000-7ff56d992000 r--p 0001a000 08:02 1991959                    /home/dzhoshkun/ws/_i/ndicapi/lib/libndicapi.so
7ff56d992000-7ff56d994000 rw-p 0001b000 08:02 1991959                    /home/dzhoshkun/ws/_i/ndicapi/lib/libndicapi.so
7ff56d994000-7ff56d9ab000 r-xp 00000000 08:02 2098951                    /home/dzhoshkun/.local/lib/python2.7/site-packages/pyndicapi.so
7ff56d9ab000-7ff56dbaa000 ---p 00017000 08:02 2098951                    /home/dzhoshkun/.local/lib/python2.7/site-packages/pyndicapi.so
7ff56dbaa000-7ff56dbab000 r--p 00016000 08:02 2098951                    /home/dzhoshkun/.local/lib/python2.7/site-packages/pyndicapi.so
7ff56dbab000-7ff56dbad000 rw-p 00017000 08:02 2098951                    /home/dzhoshkun/.local/lib/python2.7/site-packages/pyndicapi.so
7ff56dbad000-7ff56de85000 r--p 00000000 08:03 20972417                   /usr/lib/locale/locale-archive
7ff56de85000-7ff56df8d000 r-xp 00000000 08:03 1445867                    /lib/x86_64-linux-gnu/libm-2.23.so
7ff56df8d000-7ff56e18c000 ---p 00108000 08:03 1445867                    /lib/x86_64-linux-gnu/libm-2.23.so
7ff56e18c000-7ff56e18d000 r--p 00107000 08:03 1445867                    /lib/x86_64-linux-gnu/libm-2.23.so
7ff56e18d000-7ff56e18e000 rw-p 00108000 08:03 1445867                    /lib/x86_64-linux-gnu/libm-2.23.so
7ff56e18e000-7ff56e1a7000 r-xp 00000000 08:03 1441797                    /lib/x86_64-linux-gnu/libz.so.1.2.8
7ff56e1a7000-7ff56e3a6000 ---p 00019000 08:03 1441797                    /lib/x86_64-linux-gnu/libz.so.1.2.8
7ff56e3a6000-7ff56e3a7000 r--p 00018000 08:03 1441797                    /lib/x86_64-linux-gnu/libz.so.1.2.8
7ff56e3a7000-7ff56e3a8000 rw-p 00019000 08:03 1441797                    /lib/x86_64-linux-gnu/libz.so.1.2.8
7ff56e3a8000-7ff56e3aa000 r-xp 00000000 08:03 1445890                    /lib/x86_64-linux-gnu/libutil-2.23.so
7ff56e3aa000-7ff56e5a9000 ---p 00002000 08:03 1445890                    /lib/x86_64-linux-gnu/libutil-2.23.so
7ff56e5a9000-7ff56e5aa000 r--p 00001000 08:03 1445890                    /lib/x86_64-linux-gnu/libutil-2.23.so
7ff56e5aa000-7ff56e5ab000 rw-p 00002000 08:03 1445890                    /lib/x86_64-linux-gnu/libutil-2.23.so
7ff56e5ab000-7ff56e5ae000 r-xp 00000000 08:03 1445885                    /lib/x86_64-linux-gnu/libdl-2.23.so
7ff56e5ae000-7ff56e7ad000 ---p 00003000 08:03 1445885                    /lib/x86_64-linux-gnu/libdl-2.23.so
7ff56e7ad000-7ff56e7ae000 r--p 00002000 08:03 1445885                    /lib/x86_64-linux-gnu/libdl-2.23.so
7ff56e7ae000-7ff56e7af000 rw-p 00003000 08:03 1445885                    /lib/x86_64-linux-gnu/libdl-2.23.so
7ff56e7af000-7ff56e96f000 r-xp 00000000 08:03 1445883                    /lib/x86_64-linux-gnu/libc-2.23.so
7ff56e96f000-7ff56eb6f000 ---p 001c0000 08:03 1445883                    /lib/x86_64-linux-gnu/libc-2.23.so
7ff56eb6f000-7ff56eb73000 r--p 001c0000 08:03 1445883                    /lib/x86_64-linux-gnu/libc-2.23.so
7ff56eb73000-7ff56eb75000 rw-p 001c4000 08:03 1445883                    /lib/x86_64-linux-gnu/libc-2.23.so
7ff56eb75000-7ff56eb79000 rw-p 00000000 00:00 0 
7ff56eb79000-7ff56eb91000 r-xp 00000000 08:03 1445874                    /lib/x86_64-linux-gnu/libpthread-2.23.so
7ff56eb91000-7ff56ed90000 ---p 00018000 08:03 1445874                    /lib/x86_64-linux-gnu/libpthread-2.23.so
7ff56ed90000-7ff56ed91000 r--p 00017000 08:03 1445874                    /lib/x86_64-linux-gnu/libpthread-2.23.so
7ff56ed91000-7ff56ed92000 rw-p 00018000 08:03 1445874                    /lib/x86_64-linux-gnu/libpthread-2.23.so
7ff56ed92000-7ff56ed96000 rw-p 00000000 00:00 0 
7ff56ed96000-7ff56edbc000 r-xp 00000000 08:03 1445872                    /lib/x86_64-linux-gnu/ld-2.23.so
7ff56ee3c000-7ff56ef72000 rw-p 00000000 00:00 0 
7ff56ef7a000-7ff56efbb000 rw-p 00000000 00:00 0 
7ff56efbb000-7ff56efbc000 r--p 00025000 08:03 1445872                    /lib/x86_64-linux-gnu/ld-2.23.so
7ff56efbc000-7ff56efbd000 rw-p 00026000 08:03 1445872                    /lib/x86_64-linux-gnu/ld-2.23.so
7ff56efbd000-7ff56efbe000 rw-p 00000000 00:00 0 
7ffd4823d000-7ffd4825e000 rw-p 00000000 00:00 0                          [stack]
7ffd482e3000-7ffd482e6000 r--p 00000000 00:00 0                          [vvar]
7ffd482e6000-7ffd482e8000 r-xp 00000000 00:00 0                          [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]
[1]    21115 abort (core dumped)  python Applications/ndiBasicExample.py

Python 3 support for the extension module

This guideline in conj. with this more detailed one shows how to port extension modules to Python 3.
In addition see this discussion.

Type object definitions in Python 3 and Python 2 are relevant (esp. PyNumberMethods).

In particular when trying to compile against Python 3, the following errors are encountered:

dzhoshkun@joshuah ‹ master ●● › : ~/workspace/ndicapi
[0] % python3 setup.py build
running build
running build_ext
building 'pyndicapi' extension
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.5m -c ndicapi.cxx -o build/temp.linux-x86_64-3.5/ndicapi.o
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
ndicapi.cxx: In function ‘char* ndiErrorString(int)’:

[...]

x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.5m -c ndicapi_math.cxx -o build/temp.linux-x86_64-3.5/ndicapi_math.o
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
ndicapi_math.cxx:96:1: warning: multi-line comment [-Wcomment]
 //                               /  m_11 m_12 m_11 m_12 \
 ^
ndicapi_math.cxx:243:1: warning: multi-line comment [-Wcomment]
 // / 1    0       0       \ / cos(pch) 0 -sin(pch) \ /  cos(rol) sin(rol)  0 \
 ^
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.5m -c ndicapi_serial.cxx -o build/temp.linux-x86_64-3.5/ndicapi_serial.o
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
In file included from ndicapi_serial.cxx:55:0:
ndicapi_serial_unix.cxx: In function ‘int ndiSerialRead(int, char*, int, bool, int*)’:
ndicapi_serial_unix.cxx:436:19: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
     if (!isBinary && reply[totalNumberOfBytesRead - 1] == '\r'       /* done when carriage return received (ASCII) or when ERROR... re
                   ^
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.5m -c ndicapi_thread.cxx -o build/temp.linux-x86_64-3.5/ndicapi_thread.o
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.5m -c ndicapimodule.cxx -o build/temp.linux-x86_64-3.5/ndicapimodule.o
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
ndicapimodule.cxx: In function ‘PyObject* PyNdicapi_PyString(PyObject*)’:
ndicapimodule.cxx:53:35: error: ‘PyString_FromString’ was not declared in this scope
   return PyString_FromString(space);
                                   ^
ndicapimodule.cxx: In function ‘PyObject* PyNdicapi_PyRepr(PyObject*)’:
ndicapimodule.cxx:61:35: error: ‘PyString_FromString’ was not declared in this scope
   return PyString_FromString(space);
                                   ^
ndicapimodule.cxx: At global scope:
ndicapimodule.cxx:84:4: error: ‘cmpfunc’ was not declared in this scope
   (cmpfunc)0,                                                 /* tp_compare */
    ^
ndicapimodule.cxx:84:12: error: expected ‘}’ before numeric constant
   (cmpfunc)0,                                                 /* tp_compare */
            ^
ndicapimodule.cxx:84:12: error: expected ‘,’ or ‘;’ before numeric constant
ndicapimodule.cxx:97:1: error: expected declaration before ‘}’ token
 };
 ^
ndicapimodule.cxx:48:18: warning: ‘PyObject* PyNdicapi_PyString(PyObject*)’ defined but not used [-Wunused-function]
 static PyObject* PyNdicapi_PyString(PyObject* self)
                  ^
ndicapimodule.cxx:56:18: warning: ‘PyObject* PyNdicapi_PyRepr(PyObject*)’ defined but not used [-Wunused-function]
 static PyObject* PyNdicapi_PyRepr(PyObject* self)
                  ^
ndicapimodule.cxx:73:21: warning: ‘PyNdicapiType’ defined but not used [-Wunused-variable]
 static PyTypeObject PyNdicapiType =
                     ^
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.