From ccfbcc8a3a8390fa4aa85ad765a693887b06b8e4 Mon Sep 17 00:00:00 2001 From: "Herbert J. Bernstein" Date: Wed, 18 Apr 2018 07:21:58 -0400 Subject: [PATCH] Turn off overflow tests in cbf_copy Make extra copy of solib libraries in lib Update Makefiles --- Makefile | 1 + Makefile_AIX | 1 + Makefile_IRIX_gcc | 1 + Makefile_LINUX | 1 + Makefile_LINUX_64 | 1 + Makefile_LINUX_DMALLOC | 1 + Makefile_LINUX_gcc42 | 1 + Makefile_LINUX_gcc42_DMALLOC | 1 + Makefile_MINGW | 1 + Makefile_MSYS2 | 1 + Makefile_OSX | 1 + Makefile_OSX_gcc42 | 1 + Makefile_OSX_gcc42_DMALLOC | 1 + jcbf/jcbf.i | 44 -- libtool/build_libtool.sh | 0 libtool/ltmain.sh | 0 m4/Makefile.m4 | 1 + ply-3.2/dist/ply-3.2-py2.6.egg | Bin 87392 -> 0 bytes ply-3.2/ply.egg-info/PKG-INFO | 6 +- pycbf/pycbf.py | 185 ++---- pycbf/pycbf_wrap.c | 1036 +++++++++----------------------- src/cbf_copy.c | 96 +-- 22 files changed, 397 insertions(+), 984 deletions(-) delete mode 100644 jcbf/jcbf.i mode change 100644 => 100755 libtool/build_libtool.sh mode change 100644 => 100755 libtool/ltmain.sh delete mode 100644 ply-3.2/dist/ply-3.2-py2.6.egg diff --git a/Makefile b/Makefile index cb214a35..5798c431 100644 --- a/Makefile +++ b/Makefile @@ -1451,6 +1451,7 @@ $(PYCBF)/_pycbf.$(PYCBFEXT): $(PYCBF) shared \ $(PYCBF)/cbfdetectorwrappers.i \ $(PYCBF)/cbfgenericwrappers.i \ $(PYCBF)/cbfgoniometerwrappers.i + -cp $(SOLIB)/*.so $(LIB) (cd $(PYCBF); $(PYTHON) $(SETUP_PY) build $(PYCBFBOPT); cp build/lib*/_pycbf.$(PYCBFEXT) .) $(PYCBF)/pycbfinstall: diff --git a/Makefile_AIX b/Makefile_AIX index 5cd44956..ffea30d5 100644 --- a/Makefile_AIX +++ b/Makefile_AIX @@ -1446,6 +1446,7 @@ $(PYCBF)/_pycbf.$(PYCBFEXT): $(PYCBF) shared \ $(PYCBF)/cbfdetectorwrappers.i \ $(PYCBF)/cbfgenericwrappers.i \ $(PYCBF)/cbfgoniometerwrappers.i + -cp $(SOLIB)/*.so $(LIB) (cd $(PYCBF); $(PYTHON) $(SETUP_PY) build $(PYCBFBOPT); cp build/lib*/_pycbf.$(PYCBFEXT) .) $(PYCBF)/pycbfinstall: diff --git a/Makefile_IRIX_gcc b/Makefile_IRIX_gcc index 087dbe7d..9592884d 100644 --- a/Makefile_IRIX_gcc +++ b/Makefile_IRIX_gcc @@ -1451,6 +1451,7 @@ $(PYCBF)/_pycbf.$(PYCBFEXT): $(PYCBF) shared \ $(PYCBF)/cbfdetectorwrappers.i \ $(PYCBF)/cbfgenericwrappers.i \ $(PYCBF)/cbfgoniometerwrappers.i + -cp $(SOLIB)/*.so $(LIB) (cd $(PYCBF); $(PYTHON) $(SETUP_PY) build $(PYCBFBOPT); cp build/lib*/_pycbf.$(PYCBFEXT) .) $(PYCBF)/pycbfinstall: diff --git a/Makefile_LINUX b/Makefile_LINUX index 82dfbe9b..e16f6aa2 100644 --- a/Makefile_LINUX +++ b/Makefile_LINUX @@ -1450,6 +1450,7 @@ $(PYCBF)/_pycbf.$(PYCBFEXT): $(PYCBF) shared \ $(PYCBF)/cbfdetectorwrappers.i \ $(PYCBF)/cbfgenericwrappers.i \ $(PYCBF)/cbfgoniometerwrappers.i + -cp $(SOLIB)/*.so $(LIB) (cd $(PYCBF); $(PYTHON) $(SETUP_PY) build $(PYCBFBOPT); cp build/lib*/_pycbf.$(PYCBFEXT) .) $(PYCBF)/pycbfinstall: diff --git a/Makefile_LINUX_64 b/Makefile_LINUX_64 index e2771863..6eb63301 100644 --- a/Makefile_LINUX_64 +++ b/Makefile_LINUX_64 @@ -1451,6 +1451,7 @@ $(PYCBF)/_pycbf.$(PYCBFEXT): $(PYCBF) shared \ $(PYCBF)/cbfdetectorwrappers.i \ $(PYCBF)/cbfgenericwrappers.i \ $(PYCBF)/cbfgoniometerwrappers.i + -cp $(SOLIB)/*.so $(LIB) (cd $(PYCBF); $(PYTHON) $(SETUP_PY) build $(PYCBFBOPT); cp build/lib*/_pycbf.$(PYCBFEXT) .) $(PYCBF)/pycbfinstall: diff --git a/Makefile_LINUX_DMALLOC b/Makefile_LINUX_DMALLOC index bb3f5475..334e82fa 100644 --- a/Makefile_LINUX_DMALLOC +++ b/Makefile_LINUX_DMALLOC @@ -1450,6 +1450,7 @@ $(PYCBF)/_pycbf.$(PYCBFEXT): $(PYCBF) shared \ $(PYCBF)/cbfdetectorwrappers.i \ $(PYCBF)/cbfgenericwrappers.i \ $(PYCBF)/cbfgoniometerwrappers.i + -cp $(SOLIB)/*.so $(LIB) (cd $(PYCBF); $(PYTHON) $(SETUP_PY) build $(PYCBFBOPT); cp build/lib*/_pycbf.$(PYCBFEXT) .) $(PYCBF)/pycbfinstall: diff --git a/Makefile_LINUX_gcc42 b/Makefile_LINUX_gcc42 index cfb695be..0e3b3058 100644 --- a/Makefile_LINUX_gcc42 +++ b/Makefile_LINUX_gcc42 @@ -1451,6 +1451,7 @@ $(PYCBF)/_pycbf.$(PYCBFEXT): $(PYCBF) shared \ $(PYCBF)/cbfdetectorwrappers.i \ $(PYCBF)/cbfgenericwrappers.i \ $(PYCBF)/cbfgoniometerwrappers.i + -cp $(SOLIB)/*.so $(LIB) (cd $(PYCBF); $(PYTHON) $(SETUP_PY) build $(PYCBFBOPT); cp build/lib*/_pycbf.$(PYCBFEXT) .) $(PYCBF)/pycbfinstall: diff --git a/Makefile_LINUX_gcc42_DMALLOC b/Makefile_LINUX_gcc42_DMALLOC index 72d75e09..89a55144 100644 --- a/Makefile_LINUX_gcc42_DMALLOC +++ b/Makefile_LINUX_gcc42_DMALLOC @@ -1451,6 +1451,7 @@ $(PYCBF)/_pycbf.$(PYCBFEXT): $(PYCBF) shared \ $(PYCBF)/cbfdetectorwrappers.i \ $(PYCBF)/cbfgenericwrappers.i \ $(PYCBF)/cbfgoniometerwrappers.i + -cp $(SOLIB)/*.so $(LIB) (cd $(PYCBF); $(PYTHON) $(SETUP_PY) build $(PYCBFBOPT); cp build/lib*/_pycbf.$(PYCBFEXT) .) $(PYCBF)/pycbfinstall: diff --git a/Makefile_MINGW b/Makefile_MINGW index 300e7378..580b3301 100644 --- a/Makefile_MINGW +++ b/Makefile_MINGW @@ -1463,6 +1463,7 @@ $(PYCBF)/_pycbf.$(PYCBFEXT): $(PYCBF) shared \ $(PYCBF)/cbfdetectorwrappers.i \ $(PYCBF)/cbfgenericwrappers.i \ $(PYCBF)/cbfgoniometerwrappers.i + -cp $(SOLIB)/*.so $(LIB) (cd $(PYCBF); $(PYTHON) $(SETUP_PY) build $(PYCBFBOPT); cp build/lib*/_pycbf.$(PYCBFEXT) .) $(PYCBF)/pycbfinstall: diff --git a/Makefile_MSYS2 b/Makefile_MSYS2 index cc4a7835..3e6cfba5 100644 --- a/Makefile_MSYS2 +++ b/Makefile_MSYS2 @@ -1452,6 +1452,7 @@ $(PYCBF)/_pycbf.$(PYCBFEXT): $(PYCBF) shared \ $(PYCBF)/cbfdetectorwrappers.i \ $(PYCBF)/cbfgenericwrappers.i \ $(PYCBF)/cbfgoniometerwrappers.i + -cp $(SOLIB)/*.so $(LIB) (cd $(PYCBF); $(PYTHON) $(SETUP_PY) build $(PYCBFBOPT); cp build/lib*/_pycbf.$(PYCBFEXT) .) $(PYCBF)/pycbfinstall: diff --git a/Makefile_OSX b/Makefile_OSX index b1e25f96..93718a3b 100644 --- a/Makefile_OSX +++ b/Makefile_OSX @@ -1448,6 +1448,7 @@ $(PYCBF)/_pycbf.$(PYCBFEXT): $(PYCBF) shared \ $(PYCBF)/cbfdetectorwrappers.i \ $(PYCBF)/cbfgenericwrappers.i \ $(PYCBF)/cbfgoniometerwrappers.i + -cp $(SOLIB)/*.so $(LIB) (cd $(PYCBF); $(PYTHON) $(SETUP_PY) build $(PYCBFBOPT); cp build/lib*/_pycbf.$(PYCBFEXT) .) $(PYCBF)/pycbfinstall: diff --git a/Makefile_OSX_gcc42 b/Makefile_OSX_gcc42 index 9c657880..1b007fe7 100644 --- a/Makefile_OSX_gcc42 +++ b/Makefile_OSX_gcc42 @@ -1453,6 +1453,7 @@ $(PYCBF)/_pycbf.$(PYCBFEXT): $(PYCBF) shared \ $(PYCBF)/cbfdetectorwrappers.i \ $(PYCBF)/cbfgenericwrappers.i \ $(PYCBF)/cbfgoniometerwrappers.i + -cp $(SOLIB)/*.so $(LIB) (cd $(PYCBF); $(PYTHON) $(SETUP_PY) build $(PYCBFBOPT); cp build/lib*/_pycbf.$(PYCBFEXT) .) $(PYCBF)/pycbfinstall: diff --git a/Makefile_OSX_gcc42_DMALLOC b/Makefile_OSX_gcc42_DMALLOC index 22502918..cb0b51bb 100644 --- a/Makefile_OSX_gcc42_DMALLOC +++ b/Makefile_OSX_gcc42_DMALLOC @@ -1453,6 +1453,7 @@ $(PYCBF)/_pycbf.$(PYCBFEXT): $(PYCBF) shared \ $(PYCBF)/cbfdetectorwrappers.i \ $(PYCBF)/cbfgenericwrappers.i \ $(PYCBF)/cbfgoniometerwrappers.i + -cp $(SOLIB)/*.so $(LIB) (cd $(PYCBF); $(PYTHON) $(SETUP_PY) build $(PYCBFBOPT); cp build/lib*/_pycbf.$(PYCBFEXT) .) $(PYCBF)/pycbfinstall: diff --git a/jcbf/jcbf.i b/jcbf/jcbf.i deleted file mode 100644 index e373ca19..00000000 --- a/jcbf/jcbf.i +++ /dev/null @@ -1,44 +0,0 @@ -// swig -Iinclude -java -package org.iucr.jcbf.ib -outdir java cbf.i -// javac -d . java/*.java -// jar cf cbflib-0.8.0.jar org -// gcc -fPIC -fpic -c cbf_wrap.c -I/dls_sw/dasc/jdk/jdk1.6.0_11/include -I/dls_sw/dasc/jdk/jdk1.6.0_11/include/linux -Iinclude -// gcc -shared cbf_wrap.o -o solib/libcbf_wrap.so -Lsolib -lcbf -%module cbf - - -%{ -/* Includes the header in the wrapper code */ -#include "cbf.h" -%} - -%include "cpointer.i" - -// wrap some C pointers in classes -%pointer_class(unsigned int, uintp) -%pointer_class(double, doublep) - -// wrap char** in functions -%pointer_functions(const char *, charpp) - -// Don't expose the memory allocation/de-allocation functions -%ignore cbf_make_handle(cbf_handle *ppchs); -%ignore cbf_free_handle(cbf_handle pchs); - -/* Parse the header file to generate wrappers */ -%include "cbf.h" - -// Add in a custom proxy constructor and destructor -%extend cbf_handle_struct { - cbf_handle_struct() { - cbf_handle_struct *pchs = 0; - cbf_make_handle(&pchs); - return pchs; - } - ~cbf_handle_struct() { - cbf_free_handle(self); - } -} - -// File I/O functions -FILE *fopen(char *name, char *mode); -void fclose(FILE *); diff --git a/libtool/build_libtool.sh b/libtool/build_libtool.sh old mode 100644 new mode 100755 diff --git a/libtool/ltmain.sh b/libtool/ltmain.sh old mode 100644 new mode 100755 diff --git a/m4/Makefile.m4 b/m4/Makefile.m4 index ec8e2c36..0edb0202 100644 --- a/m4/Makefile.m4 +++ b/m4/Makefile.m4 @@ -1713,6 +1713,7 @@ $(PYCBF)/_pycbf.$(PYCBFEXT): $(PYCBF) shared \ $(PYCBF)/cbfdetectorwrappers.i \ $(PYCBF)/cbfgenericwrappers.i \ $(PYCBF)/cbfgoniometerwrappers.i + -cp $(SOLIB)/*.so $(LIB) (cd $(PYCBF); $(PYTHON) $(SETUP_PY) build $(PYCBFBOPT); cp build/lib*/_pycbf.$(PYCBFEXT) .) $(PYCBF)/pycbfinstall: diff --git a/ply-3.2/dist/ply-3.2-py2.6.egg b/ply-3.2/dist/ply-3.2-py2.6.egg deleted file mode 100644 index 4138583e11679583cc9130149f5c324c61d1b91b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 87392 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 (2, 6, 0): +from sys import version_info as _swig_python_version_info +if _swig_python_version_info >= (2, 7, 0): + def swig_import_helper(): + import importlib + pkg = __name__.rpartition('.')[0] + mname = '.'.join((pkg, '_pycbf')).lstrip('.') + try: + return importlib.import_module(mname) + except ImportError: + return importlib.import_module('_pycbf') + _pycbf = swig_import_helper() + del swig_import_helper +elif _swig_python_version_info >= (2, 6, 0): def swig_import_helper(): from os.path import dirname import imp @@ -29,12 +40,16 @@ def swig_import_helper(): del swig_import_helper else: import _pycbf -del version_info +del _swig_python_version_info try: _swig_property = property except NameError: pass # Python < 2.2 doesn't have 'property'. +try: + import builtins as __builtin__ +except ImportError: + import __builtin__ def _swig_setattr_nondynamic(self, class_type, name, value, static=1): if (name == "thisown"): @@ -59,38 +74,31 @@ def _swig_setattr(self, class_type, name, value): return _swig_setattr_nondynamic(self, class_type, name, value, 0) -def _swig_getattr_nondynamic(self, class_type, name, static=1): +def _swig_getattr(self, class_type, name): if (name == "thisown"): return self.this.own() method = class_type.__swig_getmethods__.get(name, None) if method: return method(self) - if (not static): - return object.__getattr__(self, name) - else: - raise AttributeError(name) - -def _swig_getattr(self, class_type, name): - return _swig_getattr_nondynamic(self, class_type, name, 0) + raise AttributeError("'%s' object has no attribute '%s'" % (class_type.__name__, name)) def _swig_repr(self): try: strthis = "proxy of " + self.this.__repr__() - except: + except __builtin__.Exception: strthis = "" return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,) try: _object = object _newclass = 1 -except AttributeError: +except __builtin__.Exception: class _object: pass _newclass = 0 - __author__ = "Jon Wright " __date__ = "14 Dec 2005" __version__ = "CBFlib 0.9" @@ -136,7 +144,7 @@ def __init__(self, nelements): this = _pycbf.new_doubleArray(nelements) try: self.this.append(this) - except: + except __builtin__.Exception: self.this = this __swig_destroy__ = _pycbf.delete_doubleArray __del__ = lambda self: None @@ -149,9 +157,10 @@ def __setitem__(self, index, value): def cast(self): return _pycbf.doubleArray_cast(self) - __swig_getmethods__["frompointer"] = lambda x: _pycbf.doubleArray_frompointer if _newclass: frompointer = staticmethod(_pycbf.doubleArray_frompointer) + else: + frompointer = _pycbf.doubleArray_frompointer doubleArray_swigregister = _pycbf.doubleArray_swigregister doubleArray_swigregister(doubleArray) @@ -170,7 +179,7 @@ def __init__(self, nelements): this = _pycbf.new_intArray(nelements) try: self.this.append(this) - except: + except __builtin__.Exception: self.this = this __swig_destroy__ = _pycbf.delete_intArray __del__ = lambda self: None @@ -183,9 +192,10 @@ def __setitem__(self, index, value): def cast(self): return _pycbf.intArray_cast(self) - __swig_getmethods__["frompointer"] = lambda x: _pycbf.intArray_frompointer if _newclass: frompointer = staticmethod(_pycbf.intArray_frompointer) + else: + frompointer = _pycbf.intArray_frompointer intArray_swigregister = _pycbf.intArray_swigregister intArray_swigregister(intArray) @@ -204,7 +214,7 @@ def __init__(self, nelements): this = _pycbf.new_shortArray(nelements) try: self.this.append(this) - except: + except __builtin__.Exception: self.this = this __swig_destroy__ = _pycbf.delete_shortArray __del__ = lambda self: None @@ -217,9 +227,10 @@ def __setitem__(self, index, value): def cast(self): return _pycbf.shortArray_cast(self) - __swig_getmethods__["frompointer"] = lambda x: _pycbf.shortArray_frompointer if _newclass: frompointer = staticmethod(_pycbf.shortArray_frompointer) + else: + frompointer = _pycbf.shortArray_frompointer shortArray_swigregister = _pycbf.shortArray_swigregister shortArray_swigregister(shortArray) @@ -238,7 +249,7 @@ def __init__(self, nelements): this = _pycbf.new_longArray(nelements) try: self.this.append(this) - except: + except __builtin__.Exception: self.this = this __swig_destroy__ = _pycbf.delete_longArray __del__ = lambda self: None @@ -251,9 +262,10 @@ def __setitem__(self, index, value): def cast(self): return _pycbf.longArray_cast(self) - __swig_getmethods__["frompointer"] = lambda x: _pycbf.longArray_frompointer if _newclass: frompointer = staticmethod(_pycbf.longArray_frompointer) + else: + frompointer = _pycbf.longArray_frompointer longArray_swigregister = _pycbf.longArray_swigregister longArray_swigregister(longArray) @@ -261,152 +273,54 @@ def longArray_frompointer(t): return _pycbf.longArray_frompointer(t) longArray_frompointer = _pycbf.longArray_frompointer - -_pycbf.CBF_INTEGER_swigconstant(_pycbf) CBF_INTEGER = _pycbf.CBF_INTEGER - -_pycbf.CBF_FLOAT_swigconstant(_pycbf) CBF_FLOAT = _pycbf.CBF_FLOAT - -_pycbf.CBF_CANONICAL_swigconstant(_pycbf) CBF_CANONICAL = _pycbf.CBF_CANONICAL - -_pycbf.CBF_PACKED_swigconstant(_pycbf) CBF_PACKED = _pycbf.CBF_PACKED - -_pycbf.CBF_PACKED_V2_swigconstant(_pycbf) CBF_PACKED_V2 = _pycbf.CBF_PACKED_V2 - -_pycbf.CBF_BYTE_OFFSET_swigconstant(_pycbf) CBF_BYTE_OFFSET = _pycbf.CBF_BYTE_OFFSET - -_pycbf.CBF_PREDICTOR_swigconstant(_pycbf) CBF_PREDICTOR = _pycbf.CBF_PREDICTOR - -_pycbf.CBF_NONE_swigconstant(_pycbf) CBF_NONE = _pycbf.CBF_NONE - -_pycbf.CBF_COMPRESSION_MASK_swigconstant(_pycbf) CBF_COMPRESSION_MASK = _pycbf.CBF_COMPRESSION_MASK - -_pycbf.CBF_FLAG_MASK_swigconstant(_pycbf) CBF_FLAG_MASK = _pycbf.CBF_FLAG_MASK - -_pycbf.CBF_UNCORRELATED_SECTIONS_swigconstant(_pycbf) CBF_UNCORRELATED_SECTIONS = _pycbf.CBF_UNCORRELATED_SECTIONS - -_pycbf.CBF_FLAT_IMAGE_swigconstant(_pycbf) CBF_FLAT_IMAGE = _pycbf.CBF_FLAT_IMAGE - -_pycbf.CBF_NO_EXPAND_swigconstant(_pycbf) CBF_NO_EXPAND = _pycbf.CBF_NO_EXPAND - -_pycbf.PLAIN_HEADERS_swigconstant(_pycbf) PLAIN_HEADERS = _pycbf.PLAIN_HEADERS - -_pycbf.MIME_HEADERS_swigconstant(_pycbf) MIME_HEADERS = _pycbf.MIME_HEADERS - -_pycbf.MSG_NODIGEST_swigconstant(_pycbf) MSG_NODIGEST = _pycbf.MSG_NODIGEST - -_pycbf.MSG_DIGEST_swigconstant(_pycbf) MSG_DIGEST = _pycbf.MSG_DIGEST - -_pycbf.MSG_DIGESTNOW_swigconstant(_pycbf) MSG_DIGESTNOW = _pycbf.MSG_DIGESTNOW - -_pycbf.MSG_DIGESTWARN_swigconstant(_pycbf) MSG_DIGESTWARN = _pycbf.MSG_DIGESTWARN - -_pycbf.PAD_1K_swigconstant(_pycbf) PAD_1K = _pycbf.PAD_1K - -_pycbf.PAD_2K_swigconstant(_pycbf) PAD_2K = _pycbf.PAD_2K - -_pycbf.PAD_4K_swigconstant(_pycbf) PAD_4K = _pycbf.PAD_4K - -_pycbf.CBF_PARSE_BRC_swigconstant(_pycbf) CBF_PARSE_BRC = _pycbf.CBF_PARSE_BRC - -_pycbf.CBF_PARSE_PRN_swigconstant(_pycbf) CBF_PARSE_PRN = _pycbf.CBF_PARSE_PRN - -_pycbf.CBF_PARSE_BKT_swigconstant(_pycbf) CBF_PARSE_BKT = _pycbf.CBF_PARSE_BKT - -_pycbf.CBF_PARSE_BRACKETS_swigconstant(_pycbf) CBF_PARSE_BRACKETS = _pycbf.CBF_PARSE_BRACKETS - -_pycbf.CBF_PARSE_TQ_swigconstant(_pycbf) CBF_PARSE_TQ = _pycbf.CBF_PARSE_TQ - -_pycbf.CBF_PARSE_CIF2_DELIMS_swigconstant(_pycbf) CBF_PARSE_CIF2_DELIMS = _pycbf.CBF_PARSE_CIF2_DELIMS - -_pycbf.CBF_PARSE_DDLm_swigconstant(_pycbf) CBF_PARSE_DDLm = _pycbf.CBF_PARSE_DDLm - -_pycbf.CBF_PARSE_CIF2_swigconstant(_pycbf) CBF_PARSE_CIF2 = _pycbf.CBF_PARSE_CIF2 - -_pycbf.CBF_PARSE_DEFINES_swigconstant(_pycbf) CBF_PARSE_DEFINES = _pycbf.CBF_PARSE_DEFINES - -_pycbf.CBF_PARSE_WIDE_swigconstant(_pycbf) CBF_PARSE_WIDE = _pycbf.CBF_PARSE_WIDE - -_pycbf.CBF_PARSE_UTF8_swigconstant(_pycbf) CBF_PARSE_UTF8 = _pycbf.CBF_PARSE_UTF8 - -_pycbf.HDR_DEFAULT_swigconstant(_pycbf) HDR_DEFAULT = _pycbf.HDR_DEFAULT - -_pycbf.MIME_NOHEADERS_swigconstant(_pycbf) MIME_NOHEADERS = _pycbf.MIME_NOHEADERS - -_pycbf.CBF_swigconstant(_pycbf) CBF = _pycbf.CBF - -_pycbf.CIF_swigconstant(_pycbf) CIF = _pycbf.CIF - -_pycbf.ENC_NONE_swigconstant(_pycbf) ENC_NONE = _pycbf.ENC_NONE - -_pycbf.ENC_BASE64_swigconstant(_pycbf) ENC_BASE64 = _pycbf.ENC_BASE64 - -_pycbf.ENC_BASE32K_swigconstant(_pycbf) ENC_BASE32K = _pycbf.ENC_BASE32K - -_pycbf.ENC_QP_swigconstant(_pycbf) ENC_QP = _pycbf.ENC_QP - -_pycbf.ENC_BASE10_swigconstant(_pycbf) ENC_BASE10 = _pycbf.ENC_BASE10 - -_pycbf.ENC_BASE16_swigconstant(_pycbf) ENC_BASE16 = _pycbf.ENC_BASE16 - -_pycbf.ENC_BASE8_swigconstant(_pycbf) ENC_BASE8 = _pycbf.ENC_BASE8 - -_pycbf.ENC_FORWARD_swigconstant(_pycbf) ENC_FORWARD = _pycbf.ENC_FORWARD - -_pycbf.ENC_BACKWARD_swigconstant(_pycbf) ENC_BACKWARD = _pycbf.ENC_BACKWARD - -_pycbf.ENC_CRTERM_swigconstant(_pycbf) ENC_CRTERM = _pycbf.ENC_CRTERM - -_pycbf.ENC_LFTERM_swigconstant(_pycbf) ENC_LFTERM = _pycbf.ENC_LFTERM - -_pycbf.ENC_DEFAULT_swigconstant(_pycbf) ENC_DEFAULT = _pycbf.ENC_DEFAULT def get_local_integer_byte_order(): @@ -656,7 +570,8 @@ def airy_disk_volume(xlo, ylo, xhi, yhi, cenx, ceny, volumein, fwhm): """ return _pycbf.airy_disk_volume(xlo, ylo, xhi, yhi, cenx, ceny, volumein, fwhm) class cbf_positioner_struct(_object): - """Proxy of C cbf_positioner_struct struct""" + """Proxy of C cbf_positioner_struct struct.""" + __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, cbf_positioner_struct, name, value) __swig_getmethods__ = {} @@ -692,7 +607,7 @@ def __init__(self): this = _pycbf.new_cbf_positioner_struct() try: self.this.append(this) - except: + except __builtin__.Exception: self.this = this __swig_destroy__ = _pycbf.delete_cbf_positioner_struct __del__ = lambda self: None @@ -898,7 +813,8 @@ def get_rotation_axis(self): cbf_positioner_struct_swigregister(cbf_positioner_struct) class cbf_detector_struct(_object): - """Proxy of C cbf_detector_struct struct""" + """Proxy of C cbf_detector_struct struct.""" + __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, cbf_detector_struct, name, value) __swig_getmethods__ = {} @@ -930,7 +846,7 @@ def __init__(self): this = _pycbf.new_cbf_detector_struct() try: self.this.append(this) - except: + except __builtin__.Exception: self.this = this __swig_destroy__ = _pycbf.delete_cbf_detector_struct __del__ = lambda self: None @@ -2135,29 +2051,16 @@ def get_pixel_normal(self, index1, index2): cbf_detector_struct_swigregister = _pycbf.cbf_detector_struct_swigregister cbf_detector_struct_swigregister(cbf_detector_struct) - -_pycbf.CBF_UNDEFNODE_swigconstant(_pycbf) CBF_UNDEFNODE = _pycbf.CBF_UNDEFNODE - -_pycbf.CBF_LINK_swigconstant(_pycbf) CBF_LINK = _pycbf.CBF_LINK - -_pycbf.CBF_ROOT_swigconstant(_pycbf) CBF_ROOT = _pycbf.CBF_ROOT - -_pycbf.CBF_DATABLOCK_swigconstant(_pycbf) CBF_DATABLOCK = _pycbf.CBF_DATABLOCK - -_pycbf.CBF_SAVEFRAME_swigconstant(_pycbf) CBF_SAVEFRAME = _pycbf.CBF_SAVEFRAME - -_pycbf.CBF_CATEGORY_swigconstant(_pycbf) CBF_CATEGORY = _pycbf.CBF_CATEGORY - -_pycbf.CBF_COLUMN_swigconstant(_pycbf) CBF_COLUMN = _pycbf.CBF_COLUMN class cbf_handle_struct(_object): - """Proxy of C cbf_handle_struct struct""" + """Proxy of C cbf_handle_struct struct.""" + __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, cbf_handle_struct, name, value) __swig_getmethods__ = {} @@ -2181,7 +2084,7 @@ def __init__(self): this = _pycbf.new_cbf_handle_struct() try: self.this.append(this) - except: + except __builtin__.Exception: self.this = this __swig_destroy__ = _pycbf.delete_cbf_handle_struct __del__ = lambda self: None diff --git a/pycbf/pycbf_wrap.c b/pycbf/pycbf_wrap.c index ce46f060..def63d1f 100644 --- a/pycbf/pycbf_wrap.c +++ b/pycbf/pycbf_wrap.c @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 3.0.7 + * Version 3.0.10 * * This file is not intended to be easily readable and contains a number of * coding conventions designed to improve portability and efficiency. Do not make @@ -8,7 +8,11 @@ * interface file instead. * ----------------------------------------------------------------------------- */ + +#ifndef SWIGPYTHON #define SWIGPYTHON +#endif + #define SWIG_PYTHON_DIRECTOR_NO_VTABLE /* ----------------------------------------------------------------------------- @@ -78,9 +82,11 @@ #endif /* exporting methods */ -#if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) -# ifndef GCC_HASCLASSVISIBILITY -# define GCC_HASCLASSVISIBILITY +#if defined(__GNUC__) +# if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +# ifndef GCC_HASCLASSVISIBILITY +# define GCC_HASCLASSVISIBILITY +# endif # endif #endif @@ -640,16 +646,16 @@ SWIG_UnpackData(const char *c, void *ptr, size_t sz) { char d = *(c++); unsigned char uu; if ((d >= '0') && (d <= '9')) - uu = ((d - '0') << 4); + uu = (unsigned char)((d - '0') << 4); else if ((d >= 'a') && (d <= 'f')) - uu = ((d - ('a'-10)) << 4); + uu = (unsigned char)((d - ('a'-10)) << 4); else return (char *) 0; d = *(c++); if ((d >= '0') && (d <= '9')) - uu |= (d - '0'); + uu |= (unsigned char)(d - '0'); else if ((d >= 'a') && (d <= 'f')) - uu |= (d - ('a'-10)); + uu |= (unsigned char)(d - ('a'-10)); else return (char *) 0; *u = uu; @@ -832,10 +838,6 @@ PyString_FromFormat(const char *fmt, ...) { } #endif -/* Add PyObject_Del for old Pythons */ -#if PY_VERSION_HEX < 0x01060000 -# define PyObject_Del(op) PyMem_DEL((op)) -#endif #ifndef PyObject_DEL # define PyObject_DEL PyObject_Del #endif @@ -1301,7 +1303,7 @@ SWIG_Python_AppendOutput(PyObject* result, PyObject* obj) { /* Unpack the argument tuple */ -SWIGINTERN int +SWIGINTERN Py_ssize_t SWIG_Python_UnpackTuple(PyObject *args, const char *name, Py_ssize_t min, Py_ssize_t max, PyObject **objs) { if (!args) { @@ -1315,7 +1317,7 @@ SWIG_Python_UnpackTuple(PyObject *args, const char *name, Py_ssize_t min, Py_ssi } if (!PyTuple_Check(args)) { if (min <= 1 && max >= 1) { - int i; + Py_ssize_t i; objs[0] = args; for (i = 1; i < max; ++i) { objs[i] = 0; @@ -1335,7 +1337,7 @@ SWIG_Python_UnpackTuple(PyObject *args, const char *name, Py_ssize_t min, Py_ssi name, (min == max ? "" : "at most "), (int)max, (int)l); return 0; } else { - int i; + Py_ssize_t i; for (i = 0; i < l; ++i) { objs[i] = PyTuple_GET_ITEM(args, i); } @@ -1676,16 +1678,32 @@ SwigPyObject_dealloc(PyObject *v) if (destroy) { /* destroy is always a VARARGS method */ PyObject *res; + + /* PyObject_CallFunction() has the potential to silently drop + the active active exception. In cases of unnamed temporary + variable or where we just finished iterating over a generator + StopIteration will be active right now, and this needs to + remain true upon return from SwigPyObject_dealloc. So save + and restore. */ + + PyObject *val = NULL, *type = NULL, *tb = NULL; + PyErr_Fetch(&val, &type, &tb); + if (data->delargs) { - /* we need to create a temporary object to carry the destroy operation */ - PyObject *tmp = SwigPyObject_New(sobj->ptr, ty, 0); - res = SWIG_Python_CallFunctor(destroy, tmp); - Py_DECREF(tmp); + /* we need to create a temporary object to carry the destroy operation */ + PyObject *tmp = SwigPyObject_New(sobj->ptr, ty, 0); + res = SWIG_Python_CallFunctor(destroy, tmp); + Py_DECREF(tmp); } else { - PyCFunction meth = PyCFunction_GET_FUNCTION(destroy); - PyObject *mself = PyCFunction_GET_SELF(destroy); - res = ((*meth)(mself, v)); + PyCFunction meth = PyCFunction_GET_FUNCTION(destroy); + PyObject *mself = PyCFunction_GET_SELF(destroy); + res = ((*meth)(mself, v)); } + if (!res) + PyErr_WriteUnraisable(destroy); + + PyErr_Restore(val, type, tb); + Py_XDECREF(res); } #if !defined(SWIG_PYTHON_SILENT_MEMLEAK) @@ -1709,6 +1727,7 @@ SwigPyObject_append(PyObject* v, PyObject* next) next = tmp; #endif if (!SwigPyObject_Check(next)) { + PyErr_SetString(PyExc_TypeError, "Attempt to append a non SwigPyObject"); return NULL; } sobj->next = next; @@ -1864,7 +1883,9 @@ SwigPyObject_TypeOnce(void) { (unaryfunc)SwigPyObject_oct, /*nb_oct*/ (unaryfunc)SwigPyObject_hex, /*nb_hex*/ #endif -#if PY_VERSION_HEX >= 0x03000000 /* 3.0 */ +#if PY_VERSION_HEX >= 0x03050000 /* 3.5 */ + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_matrix_multiply */ +#elif PY_VERSION_HEX >= 0x03000000 /* 3.0 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_index, nb_inplace_divide removed */ #elif PY_VERSION_HEX >= 0x02050000 /* 2.5.0 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_index */ @@ -1944,10 +1965,19 @@ SwigPyObject_TypeOnce(void) { 0, /* tp_del */ #endif #if PY_VERSION_HEX >= 0x02060000 - 0, /* tp_version */ + 0, /* tp_version_tag */ +#endif +#if PY_VERSION_HEX >= 0x03040000 + 0, /* tp_finalize */ #endif #ifdef COUNT_ALLOCS - 0,0,0,0 /* tp_alloc -> tp_next */ + 0, /* tp_allocs */ + 0, /* tp_frees */ + 0, /* tp_maxalloc */ +#if PY_VERSION_HEX >= 0x02050000 + 0, /* tp_prev */ +#endif + 0 /* tp_next */ #endif }; swigpyobject_type = tmp; @@ -2123,10 +2153,19 @@ SwigPyPacked_TypeOnce(void) { 0, /* tp_del */ #endif #if PY_VERSION_HEX >= 0x02060000 - 0, /* tp_version */ + 0, /* tp_version_tag */ +#endif +#if PY_VERSION_HEX >= 0x03040000 + 0, /* tp_finalize */ #endif #ifdef COUNT_ALLOCS - 0,0,0,0 /* tp_alloc -> tp_next */ + 0, /* tp_allocs */ + 0, /* tp_frees */ + 0, /* tp_maxalloc */ +#if PY_VERSION_HEX >= 0x02050000 + 0, /* tp_prev */ +#endif + 0 /* tp_next */ #endif }; swigpypacked_type = tmp; @@ -2654,13 +2693,11 @@ PyModule_AddObject(PyObject *m, char *name, PyObject *o) { PyObject *dict; if (!PyModule_Check(m)) { - PyErr_SetString(PyExc_TypeError, - "PyModule_AddObject() needs module as first arg"); + PyErr_SetString(PyExc_TypeError, "PyModule_AddObject() needs module as first arg"); return SWIG_ERROR; } if (!o) { - PyErr_SetString(PyExc_TypeError, - "PyModule_AddObject() needs non-NULL value"); + PyErr_SetString(PyExc_TypeError, "PyModule_AddObject() needs non-NULL value"); return SWIG_ERROR; } @@ -2988,7 +3025,7 @@ static swig_module_info swig_module = {swig_types, 20, 0, 0, 0, 0}; #endif #define SWIG_name "_pycbf" -#define SWIGVERSION 0x030007 +#define SWIGVERSION 0x030010 #define SWIG_VERSION SWIGVERSION @@ -3006,9 +3043,11 @@ SWIG_AsVal_double (PyObject *obj, double *val) if (PyFloat_Check(obj)) { if (val) *val = PyFloat_AsDouble(obj); return SWIG_OK; +#if PY_VERSION_HEX < 0x03000000 } else if (PyInt_Check(obj)) { if (val) *val = PyInt_AsLong(obj); return SWIG_OK; +#endif } else if (PyLong_Check(obj)) { double v = PyLong_AsDouble(obj); if (!PyErr_Occurred()) { @@ -3100,18 +3139,7 @@ SWIG_AsVal_unsigned_SS_long (PyObject *obj, unsigned long *val) return SWIG_OK; } else { PyErr_Clear(); -#if PY_VERSION_HEX >= 0x03000000 - { - long v = PyLong_AsLong(obj); - if (!PyErr_Occurred()) { - if (v < 0) { - return SWIG_OverflowError; - } - } else { - PyErr_Clear(); - } - } -#endif + return SWIG_OverflowError; } } #ifdef SWIG_PYTHON_CAST_MODE @@ -3138,12 +3166,77 @@ SWIG_AsVal_unsigned_SS_long (PyObject *obj, unsigned long *val) } +#include +#if !defined(SWIG_NO_LLONG_MAX) +# if !defined(LLONG_MAX) && defined(__GNUC__) && defined (__LONG_LONG_MAX__) +# define LLONG_MAX __LONG_LONG_MAX__ +# define LLONG_MIN (-LLONG_MAX - 1LL) +# define ULLONG_MAX (LLONG_MAX * 2ULL + 1ULL) +# endif +#endif + + +#if defined(LLONG_MAX) && !defined(SWIG_LONG_LONG_AVAILABLE) +# define SWIG_LONG_LONG_AVAILABLE +#endif + + +#ifdef SWIG_LONG_LONG_AVAILABLE +SWIGINTERN int +SWIG_AsVal_unsigned_SS_long_SS_long (PyObject *obj, unsigned long long *val) +{ + int res = SWIG_TypeError; + if (PyLong_Check(obj)) { + unsigned long long v = PyLong_AsUnsignedLongLong(obj); + if (!PyErr_Occurred()) { + if (val) *val = v; + return SWIG_OK; + } else { + PyErr_Clear(); + res = SWIG_OverflowError; + } + } else { + unsigned long v; + res = SWIG_AsVal_unsigned_SS_long (obj,&v); + if (SWIG_IsOK(res)) { + if (val) *val = v; + return res; + } + } +#ifdef SWIG_PYTHON_CAST_MODE + { + const double mant_max = 1LL << DBL_MANT_DIG; + double d; + res = SWIG_AsVal_double (obj,&d); + if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, 0, mant_max)) { + if (val) *val = (unsigned long long)(d); + return SWIG_AddCast(res); + } + res = SWIG_TypeError; + } +#endif + return res; +} +#endif + + SWIGINTERNINLINE int SWIG_AsVal_size_t (PyObject * obj, size_t *val) { - unsigned long v; - int res = SWIG_AsVal_unsigned_SS_long (obj, val ? &v : 0); - if (SWIG_IsOK(res) && val) *val = (size_t)(v); + int res = SWIG_TypeError; +#ifdef SWIG_LONG_LONG_AVAILABLE + if (sizeof(size_t) <= sizeof(unsigned long)) { +#endif + unsigned long v; + res = SWIG_AsVal_unsigned_SS_long (obj, val ? &v : 0); + if (SWIG_IsOK(res) && val) *val = (size_t)(v); +#ifdef SWIG_LONG_LONG_AVAILABLE + } else if (sizeof(size_t) <= sizeof(unsigned long long)) { + unsigned long long v; + res = SWIG_AsVal_unsigned_SS_long_SS_long (obj, val ? &v : 0); + if (SWIG_IsOK(res) && val) *val = (size_t)(v); + } +#endif return res; } @@ -3188,29 +3281,23 @@ SWIGINTERNINLINE PyObject* } -#include -#if !defined(SWIG_NO_LLONG_MAX) -# if !defined(LLONG_MAX) && defined(__GNUC__) && defined (__LONG_LONG_MAX__) -# define LLONG_MAX __LONG_LONG_MAX__ -# define LLONG_MIN (-LLONG_MAX - 1LL) -# define ULLONG_MAX (LLONG_MAX * 2ULL + 1ULL) -# endif -#endif - - SWIGINTERN int SWIG_AsVal_long (PyObject *obj, long* val) { +#if PY_VERSION_HEX < 0x03000000 if (PyInt_Check(obj)) { if (val) *val = PyInt_AsLong(obj); return SWIG_OK; - } else if (PyLong_Check(obj)) { + } else +#endif + if (PyLong_Check(obj)) { long v = PyLong_AsLong(obj); if (!PyErr_Occurred()) { if (val) *val = v; return SWIG_OK; } else { PyErr_Clear(); + return SWIG_OverflowError; } } #ifdef SWIG_PYTHON_CAST_MODE @@ -3274,7 +3361,7 @@ SWIGINTERN short shortArray___getitem__(shortArray *self,size_t index){ return self[index]; } - #define SWIG_From_long PyLong_FromLong + #define SWIG_From_long PyInt_FromLong SWIGINTERNINLINE PyObject * @@ -3496,13 +3583,17 @@ SWIG_FromCharPtrAndSize(const char* carray, size_t size) SWIG_InternalNewPointerObj((char *)(carray), pchar_descriptor, 0) : SWIG_Py_Void(); } else { #if PY_VERSION_HEX >= 0x03000000 +#if defined(SWIG_PYTHON_STRICT_BYTE_CHAR) + return PyBytes_FromStringAndSize(carray, (Py_ssize_t)(size)); +#else #if PY_VERSION_HEX >= 0x03010000 - return PyUnicode_DecodeUTF8(carray, (int)(size), "surrogateescape"); + return PyUnicode_DecodeUTF8(carray, (Py_ssize_t)(size), "surrogateescape"); #else - return PyUnicode_FromStringAndSize(carray, (int)(size)); + return PyUnicode_FromStringAndSize(carray, (Py_ssize_t)(size)); +#endif #endif #else - return PyString_FromStringAndSize(carray, (int)(size)); + return PyString_FromStringAndSize(carray, (Py_ssize_t)(size)); #endif } } else { @@ -3567,14 +3658,33 @@ SWIGINTERNINLINE PyObject* SWIG_From_unsigned_SS_long (unsigned long value) { return (value > LONG_MAX) ? - PyLong_FromUnsignedLong(value) : PyLong_FromLong((long)(value)); + PyLong_FromUnsignedLong(value) : PyInt_FromLong((long)(value)); } +#ifdef SWIG_LONG_LONG_AVAILABLE +SWIGINTERNINLINE PyObject* +SWIG_From_unsigned_SS_long_SS_long (unsigned long long value) +{ + return (value > LONG_MAX) ? + PyLong_FromUnsignedLongLong(value) : PyInt_FromLong((long)(value)); +} +#endif + + SWIGINTERNINLINE PyObject * SWIG_From_size_t (size_t value) { - return SWIG_From_unsigned_SS_long ((unsigned long)(value)); +#ifdef SWIG_LONG_LONG_AVAILABLE + if (sizeof(size_t) <= sizeof(unsigned long)) { +#endif + return SWIG_From_unsigned_SS_long ((unsigned long)(value)); +#ifdef SWIG_LONG_LONG_AVAILABLE + } else { + /* assume sizeof(size_t) <= sizeof(unsigned long long) */ + return SWIG_From_unsigned_SS_long_SS_long ((unsigned long long)(value)); + } +#endif } SWIGINTERN cbf_positioner_struct *new_cbf_positioner_struct(void){ // Constructor @@ -3805,13 +3915,18 @@ SWIGINTERN int SWIG_AsCharPtrAndSize(PyObject *obj, char** cptr, size_t* psize, int *alloc) { #if PY_VERSION_HEX>=0x03000000 +#if defined(SWIG_PYTHON_STRICT_BYTE_CHAR) + if (PyBytes_Check(obj)) +#else if (PyUnicode_Check(obj)) +#endif #else if (PyString_Check(obj)) #endif { char *cstr; Py_ssize_t len; #if PY_VERSION_HEX>=0x03000000 +#if !defined(SWIG_PYTHON_STRICT_BYTE_CHAR) if (!alloc && cptr) { /* We can't allow converting without allocation, since the internal representation of string in Python 3 is UCS-2/UCS-4 but we require @@ -3820,8 +3935,9 @@ SWIG_AsCharPtrAndSize(PyObject *obj, char** cptr, size_t* psize, int *alloc) return SWIG_RuntimeError; } obj = PyUnicode_AsUTF8String(obj); - PyBytes_AsStringAndSize(obj, &cstr, &len); if(alloc) *alloc = SWIG_NEWOBJ; +#endif + PyBytes_AsStringAndSize(obj, &cstr, &len); #else PyString_AsStringAndSize(obj, &cstr, &len); #endif @@ -3841,27 +3957,58 @@ SWIG_AsCharPtrAndSize(PyObject *obj, char** cptr, size_t* psize, int *alloc) #else if (*alloc == SWIG_NEWOBJ) #endif - { - *cptr = (char *)memcpy((char *)malloc((len + 1)*sizeof(char)), cstr, sizeof(char)*(len + 1)); - *alloc = SWIG_NEWOBJ; - } - else { + { + *cptr = (char *)memcpy((char *)malloc((len + 1)*sizeof(char)), cstr, sizeof(char)*(len + 1)); + *alloc = SWIG_NEWOBJ; + } else { *cptr = cstr; *alloc = SWIG_OLDOBJ; } } else { - #if PY_VERSION_HEX>=0x03000000 - assert(0); /* Should never reach here in Python 3 */ - #endif +#if PY_VERSION_HEX>=0x03000000 +#if defined(SWIG_PYTHON_STRICT_BYTE_CHAR) + *cptr = PyBytes_AsString(obj); +#else + assert(0); /* Should never reach here with Unicode strings in Python 3 */ +#endif +#else *cptr = SWIG_Python_str_AsChar(obj); +#endif } } if (psize) *psize = len + 1; -#if PY_VERSION_HEX>=0x03000000 +#if PY_VERSION_HEX>=0x03000000 && !defined(SWIG_PYTHON_STRICT_BYTE_CHAR) Py_XDECREF(obj); #endif return SWIG_OK; } else { +#if defined(SWIG_PYTHON_2_UNICODE) +#if defined(SWIG_PYTHON_STRICT_BYTE_CHAR) +#error "Cannot use both SWIG_PYTHON_2_UNICODE and SWIG_PYTHON_STRICT_BYTE_CHAR at once" +#endif +#if PY_VERSION_HEX<0x03000000 + if (PyUnicode_Check(obj)) { + char *cstr; Py_ssize_t len; + if (!alloc && cptr) { + return SWIG_RuntimeError; + } + obj = PyUnicode_AsUTF8String(obj); + if (PyString_AsStringAndSize(obj, &cstr, &len) != -1) { + if (cptr) { + if (alloc) *alloc = SWIG_NEWOBJ; + *cptr = (char *)memcpy((char *)malloc((len + 1)*sizeof(char)), cstr, sizeof(char)*(len + 1)); + } + if (psize) *psize = len + 1; + + Py_XDECREF(obj); + return SWIG_OK; + } else { + Py_XDECREF(obj); + } + } +#endif +#endif + swig_type_info* pchar_descriptor = SWIG_pchar_descriptor(); if (pchar_descriptor) { void* vptr = 0; @@ -6002,545 +6149,6 @@ SWIGINTERN PyObject *longArray_swigregister(PyObject *SWIGUNUSEDPARM(self), PyOb return SWIG_Py_Void(); } -SWIGINTERN PyObject *CBF_INTEGER_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "CBF_INTEGER",SWIG_From_int((int)(0x0010))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *CBF_FLOAT_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "CBF_FLOAT",SWIG_From_int((int)(0x0020))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *CBF_CANONICAL_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "CBF_CANONICAL",SWIG_From_int((int)(0x0050))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *CBF_PACKED_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "CBF_PACKED",SWIG_From_int((int)(0x0060))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *CBF_PACKED_V2_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "CBF_PACKED_V2",SWIG_From_int((int)(0x0090))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *CBF_BYTE_OFFSET_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "CBF_BYTE_OFFSET",SWIG_From_int((int)(0x0070))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *CBF_PREDICTOR_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "CBF_PREDICTOR",SWIG_From_int((int)(0x0080))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *CBF_NONE_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "CBF_NONE",SWIG_From_int((int)(0x0040))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *CBF_COMPRESSION_MASK_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "CBF_COMPRESSION_MASK",SWIG_From_int((int)(0x00FF))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *CBF_FLAG_MASK_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "CBF_FLAG_MASK",SWIG_From_int((int)(0x0F00))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *CBF_UNCORRELATED_SECTIONS_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "CBF_UNCORRELATED_SECTIONS",SWIG_From_int((int)(0x0100))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *CBF_FLAT_IMAGE_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "CBF_FLAT_IMAGE",SWIG_From_int((int)(0x0200))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *CBF_NO_EXPAND_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "CBF_NO_EXPAND",SWIG_From_int((int)(0x0400))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *PLAIN_HEADERS_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "PLAIN_HEADERS",SWIG_From_int((int)(0x0001))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *MIME_HEADERS_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "MIME_HEADERS",SWIG_From_int((int)(0x0002))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *MSG_NODIGEST_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "MSG_NODIGEST",SWIG_From_int((int)(0x0004))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *MSG_DIGEST_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "MSG_DIGEST",SWIG_From_int((int)(0x0008))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *MSG_DIGESTNOW_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "MSG_DIGESTNOW",SWIG_From_int((int)(0x0010))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *MSG_DIGESTWARN_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "MSG_DIGESTWARN",SWIG_From_int((int)(0x0020))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *PAD_1K_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "PAD_1K",SWIG_From_int((int)(0x0020))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *PAD_2K_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "PAD_2K",SWIG_From_int((int)(0x0040))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *PAD_4K_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "PAD_4K",SWIG_From_int((int)(0x0080))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *CBF_PARSE_BRC_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "CBF_PARSE_BRC",SWIG_From_int((int)(0x0100))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *CBF_PARSE_PRN_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "CBF_PARSE_PRN",SWIG_From_int((int)(0x0200))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *CBF_PARSE_BKT_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "CBF_PARSE_BKT",SWIG_From_int((int)(0x0400))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *CBF_PARSE_BRACKETS_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "CBF_PARSE_BRACKETS",SWIG_From_int((int)(0x0700))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *CBF_PARSE_TQ_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "CBF_PARSE_TQ",SWIG_From_int((int)(0x0800))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *CBF_PARSE_CIF2_DELIMS_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "CBF_PARSE_CIF2_DELIMS",SWIG_From_int((int)(0x1000))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *CBF_PARSE_DDLm_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "CBF_PARSE_DDLm",SWIG_From_int((int)(0x0700))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *CBF_PARSE_CIF2_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "CBF_PARSE_CIF2",SWIG_From_int((int)(0x1F00))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *CBF_PARSE_DEFINES_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "CBF_PARSE_DEFINES",SWIG_From_int((int)(0x2000))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *CBF_PARSE_WIDE_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "CBF_PARSE_WIDE",SWIG_From_int((int)(0x4000))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *CBF_PARSE_UTF8_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "CBF_PARSE_UTF8",SWIG_From_int((int)(0x10000))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *HDR_DEFAULT_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "HDR_DEFAULT",SWIG_From_int((int)((0x0002|0x0004)))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *MIME_NOHEADERS_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "MIME_NOHEADERS",SWIG_From_int((int)(0x0001))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *CBF_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "CBF",SWIG_From_int((int)(0x0000))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *CIF_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "CIF",SWIG_From_int((int)(0x0001))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *ENC_NONE_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "ENC_NONE",SWIG_From_int((int)(0x0001))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *ENC_BASE64_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "ENC_BASE64",SWIG_From_int((int)(0x0002))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *ENC_BASE32K_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "ENC_BASE32K",SWIG_From_int((int)(0x0004))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *ENC_QP_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "ENC_QP",SWIG_From_int((int)(0x0008))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *ENC_BASE10_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "ENC_BASE10",SWIG_From_int((int)(0x0010))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *ENC_BASE16_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "ENC_BASE16",SWIG_From_int((int)(0x0020))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *ENC_BASE8_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "ENC_BASE8",SWIG_From_int((int)(0x0040))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *ENC_FORWARD_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "ENC_FORWARD",SWIG_From_int((int)(0x0080))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *ENC_BACKWARD_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "ENC_BACKWARD",SWIG_From_int((int)(0x0100))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *ENC_CRTERM_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "ENC_CRTERM",SWIG_From_int((int)(0x0200))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *ENC_LFTERM_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "ENC_LFTERM",SWIG_From_int((int)(0x0400))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *ENC_DEFAULT_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "ENC_DEFAULT",SWIG_From_int((int)((0x0002|0x0400|0x0080)))); - return SWIG_Py_Void(); -} - - SWIGINTERN PyObject *_wrap_get_local_integer_byte_order(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; char **arg1 = (char **) 0 ; @@ -9943,83 +9551,6 @@ SWIGINTERN PyObject *cbf_detector_struct_swigregister(PyObject *SWIGUNUSEDPARM(s return SWIG_Py_Void(); } -SWIGINTERN PyObject *CBF_UNDEFNODE_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "CBF_UNDEFNODE",SWIG_From_int((int)(CBF_UNDEFNODE))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *CBF_LINK_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "CBF_LINK",SWIG_From_int((int)(CBF_LINK))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *CBF_ROOT_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "CBF_ROOT",SWIG_From_int((int)(CBF_ROOT))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *CBF_DATABLOCK_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "CBF_DATABLOCK",SWIG_From_int((int)(CBF_DATABLOCK))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *CBF_SAVEFRAME_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "CBF_SAVEFRAME",SWIG_From_int((int)(CBF_SAVEFRAME))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *CBF_CATEGORY_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "CBF_CATEGORY",SWIG_From_int((int)(CBF_CATEGORY))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *CBF_COLUMN_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "CBF_COLUMN",SWIG_From_int((int)(CBF_COLUMN))); - return SWIG_Py_Void(); -} - - SWIGINTERN PyObject *_wrap_cbf_handle_struct_node_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cbf_handle_struct *arg1 = (cbf_handle_struct *) 0 ; @@ -21374,55 +20905,6 @@ static PyMethodDef SwigMethods[] = { { (char *)"longArray_cast", _wrap_longArray_cast, METH_VARARGS, NULL}, { (char *)"longArray_frompointer", _wrap_longArray_frompointer, METH_VARARGS, NULL}, { (char *)"longArray_swigregister", longArray_swigregister, METH_VARARGS, NULL}, - { (char *)"CBF_INTEGER_swigconstant", CBF_INTEGER_swigconstant, METH_VARARGS, NULL}, - { (char *)"CBF_FLOAT_swigconstant", CBF_FLOAT_swigconstant, METH_VARARGS, NULL}, - { (char *)"CBF_CANONICAL_swigconstant", CBF_CANONICAL_swigconstant, METH_VARARGS, NULL}, - { (char *)"CBF_PACKED_swigconstant", CBF_PACKED_swigconstant, METH_VARARGS, NULL}, - { (char *)"CBF_PACKED_V2_swigconstant", CBF_PACKED_V2_swigconstant, METH_VARARGS, NULL}, - { (char *)"CBF_BYTE_OFFSET_swigconstant", CBF_BYTE_OFFSET_swigconstant, METH_VARARGS, NULL}, - { (char *)"CBF_PREDICTOR_swigconstant", CBF_PREDICTOR_swigconstant, METH_VARARGS, NULL}, - { (char *)"CBF_NONE_swigconstant", CBF_NONE_swigconstant, METH_VARARGS, NULL}, - { (char *)"CBF_COMPRESSION_MASK_swigconstant", CBF_COMPRESSION_MASK_swigconstant, METH_VARARGS, NULL}, - { (char *)"CBF_FLAG_MASK_swigconstant", CBF_FLAG_MASK_swigconstant, METH_VARARGS, NULL}, - { (char *)"CBF_UNCORRELATED_SECTIONS_swigconstant", CBF_UNCORRELATED_SECTIONS_swigconstant, METH_VARARGS, NULL}, - { (char *)"CBF_FLAT_IMAGE_swigconstant", CBF_FLAT_IMAGE_swigconstant, METH_VARARGS, NULL}, - { (char *)"CBF_NO_EXPAND_swigconstant", CBF_NO_EXPAND_swigconstant, METH_VARARGS, NULL}, - { (char *)"PLAIN_HEADERS_swigconstant", PLAIN_HEADERS_swigconstant, METH_VARARGS, NULL}, - { (char *)"MIME_HEADERS_swigconstant", MIME_HEADERS_swigconstant, METH_VARARGS, NULL}, - { (char *)"MSG_NODIGEST_swigconstant", MSG_NODIGEST_swigconstant, METH_VARARGS, NULL}, - { (char *)"MSG_DIGEST_swigconstant", MSG_DIGEST_swigconstant, METH_VARARGS, NULL}, - { (char *)"MSG_DIGESTNOW_swigconstant", MSG_DIGESTNOW_swigconstant, METH_VARARGS, NULL}, - { (char *)"MSG_DIGESTWARN_swigconstant", MSG_DIGESTWARN_swigconstant, METH_VARARGS, NULL}, - { (char *)"PAD_1K_swigconstant", PAD_1K_swigconstant, METH_VARARGS, NULL}, - { (char *)"PAD_2K_swigconstant", PAD_2K_swigconstant, METH_VARARGS, NULL}, - { (char *)"PAD_4K_swigconstant", PAD_4K_swigconstant, METH_VARARGS, NULL}, - { (char *)"CBF_PARSE_BRC_swigconstant", CBF_PARSE_BRC_swigconstant, METH_VARARGS, NULL}, - { (char *)"CBF_PARSE_PRN_swigconstant", CBF_PARSE_PRN_swigconstant, METH_VARARGS, NULL}, - { (char *)"CBF_PARSE_BKT_swigconstant", CBF_PARSE_BKT_swigconstant, METH_VARARGS, NULL}, - { (char *)"CBF_PARSE_BRACKETS_swigconstant", CBF_PARSE_BRACKETS_swigconstant, METH_VARARGS, NULL}, - { (char *)"CBF_PARSE_TQ_swigconstant", CBF_PARSE_TQ_swigconstant, METH_VARARGS, NULL}, - { (char *)"CBF_PARSE_CIF2_DELIMS_swigconstant", CBF_PARSE_CIF2_DELIMS_swigconstant, METH_VARARGS, NULL}, - { (char *)"CBF_PARSE_DDLm_swigconstant", CBF_PARSE_DDLm_swigconstant, METH_VARARGS, NULL}, - { (char *)"CBF_PARSE_CIF2_swigconstant", CBF_PARSE_CIF2_swigconstant, METH_VARARGS, NULL}, - { (char *)"CBF_PARSE_DEFINES_swigconstant", CBF_PARSE_DEFINES_swigconstant, METH_VARARGS, NULL}, - { (char *)"CBF_PARSE_WIDE_swigconstant", CBF_PARSE_WIDE_swigconstant, METH_VARARGS, NULL}, - { (char *)"CBF_PARSE_UTF8_swigconstant", CBF_PARSE_UTF8_swigconstant, METH_VARARGS, NULL}, - { (char *)"HDR_DEFAULT_swigconstant", HDR_DEFAULT_swigconstant, METH_VARARGS, NULL}, - { (char *)"MIME_NOHEADERS_swigconstant", MIME_NOHEADERS_swigconstant, METH_VARARGS, NULL}, - { (char *)"CBF_swigconstant", CBF_swigconstant, METH_VARARGS, NULL}, - { (char *)"CIF_swigconstant", CIF_swigconstant, METH_VARARGS, NULL}, - { (char *)"ENC_NONE_swigconstant", ENC_NONE_swigconstant, METH_VARARGS, NULL}, - { (char *)"ENC_BASE64_swigconstant", ENC_BASE64_swigconstant, METH_VARARGS, NULL}, - { (char *)"ENC_BASE32K_swigconstant", ENC_BASE32K_swigconstant, METH_VARARGS, NULL}, - { (char *)"ENC_QP_swigconstant", ENC_QP_swigconstant, METH_VARARGS, NULL}, - { (char *)"ENC_BASE10_swigconstant", ENC_BASE10_swigconstant, METH_VARARGS, NULL}, - { (char *)"ENC_BASE16_swigconstant", ENC_BASE16_swigconstant, METH_VARARGS, NULL}, - { (char *)"ENC_BASE8_swigconstant", ENC_BASE8_swigconstant, METH_VARARGS, NULL}, - { (char *)"ENC_FORWARD_swigconstant", ENC_FORWARD_swigconstant, METH_VARARGS, NULL}, - { (char *)"ENC_BACKWARD_swigconstant", ENC_BACKWARD_swigconstant, METH_VARARGS, NULL}, - { (char *)"ENC_CRTERM_swigconstant", ENC_CRTERM_swigconstant, METH_VARARGS, NULL}, - { (char *)"ENC_LFTERM_swigconstant", ENC_LFTERM_swigconstant, METH_VARARGS, NULL}, - { (char *)"ENC_DEFAULT_swigconstant", ENC_DEFAULT_swigconstant, METH_VARARGS, NULL}, { (char *)"get_local_integer_byte_order", _wrap_get_local_integer_byte_order, METH_VARARGS, (char *)"\n" "\n" "Returns : char **bo,int *bolen\n" @@ -22941,13 +22423,6 @@ static PyMethodDef SwigMethods[] = { "\n" ""}, { (char *)"cbf_detector_struct_swigregister", cbf_detector_struct_swigregister, METH_VARARGS, NULL}, - { (char *)"CBF_UNDEFNODE_swigconstant", CBF_UNDEFNODE_swigconstant, METH_VARARGS, NULL}, - { (char *)"CBF_LINK_swigconstant", CBF_LINK_swigconstant, METH_VARARGS, NULL}, - { (char *)"CBF_ROOT_swigconstant", CBF_ROOT_swigconstant, METH_VARARGS, NULL}, - { (char *)"CBF_DATABLOCK_swigconstant", CBF_DATABLOCK_swigconstant, METH_VARARGS, NULL}, - { (char *)"CBF_SAVEFRAME_swigconstant", CBF_SAVEFRAME_swigconstant, METH_VARARGS, NULL}, - { (char *)"CBF_CATEGORY_swigconstant", CBF_CATEGORY_swigconstant, METH_VARARGS, NULL}, - { (char *)"CBF_COLUMN_swigconstant", CBF_COLUMN_swigconstant, METH_VARARGS, NULL}, { (char *)"cbf_handle_struct_node_set", _wrap_cbf_handle_struct_node_set, METH_VARARGS, (char *)"cbf_handle_struct_node_set(cbf_handle_struct self, cbf_node * node)"}, { (char *)"cbf_handle_struct_node_get", _wrap_cbf_handle_struct_node_get, METH_VARARGS, (char *)"cbf_handle_struct_node_get(cbf_handle_struct self) -> cbf_node *"}, { (char *)"cbf_handle_struct_row_set", _wrap_cbf_handle_struct_row_set, METH_VARARGS, (char *)"cbf_handle_struct_row_set(cbf_handle_struct self, int row)"}, @@ -29889,10 +29364,19 @@ extern "C" { 0, /* tp_del */ #endif #if PY_VERSION_HEX >= 0x02060000 - 0, /* tp_version */ + 0, /* tp_version_tag */ +#endif +#if PY_VERSION_HEX >= 0x03040000 + 0, /* tp_finalize */ #endif #ifdef COUNT_ALLOCS - 0,0,0,0 /* tp_alloc -> tp_next */ + 0, /* tp_allocs */ + 0, /* tp_frees */ + 0, /* tp_maxalloc */ +#if PY_VERSION_HEX >= 0x02050000 + 0, /* tp_prev */ +#endif + 0 /* tp_next */ #endif }; varlink_type = tmp; @@ -30157,6 +29641,62 @@ SWIG_init(void) { SWIG_InstallConstants(d,swig_const_table); + SWIG_Python_SetConstant(d, "CBF_INTEGER",SWIG_From_int((int)(0x0010))); + SWIG_Python_SetConstant(d, "CBF_FLOAT",SWIG_From_int((int)(0x0020))); + SWIG_Python_SetConstant(d, "CBF_CANONICAL",SWIG_From_int((int)(0x0050))); + SWIG_Python_SetConstant(d, "CBF_PACKED",SWIG_From_int((int)(0x0060))); + SWIG_Python_SetConstant(d, "CBF_PACKED_V2",SWIG_From_int((int)(0x0090))); + SWIG_Python_SetConstant(d, "CBF_BYTE_OFFSET",SWIG_From_int((int)(0x0070))); + SWIG_Python_SetConstant(d, "CBF_PREDICTOR",SWIG_From_int((int)(0x0080))); + SWIG_Python_SetConstant(d, "CBF_NONE",SWIG_From_int((int)(0x0040))); + SWIG_Python_SetConstant(d, "CBF_COMPRESSION_MASK",SWIG_From_int((int)(0x00FF))); + SWIG_Python_SetConstant(d, "CBF_FLAG_MASK",SWIG_From_int((int)(0x0F00))); + SWIG_Python_SetConstant(d, "CBF_UNCORRELATED_SECTIONS",SWIG_From_int((int)(0x0100))); + SWIG_Python_SetConstant(d, "CBF_FLAT_IMAGE",SWIG_From_int((int)(0x0200))); + SWIG_Python_SetConstant(d, "CBF_NO_EXPAND",SWIG_From_int((int)(0x0400))); + SWIG_Python_SetConstant(d, "PLAIN_HEADERS",SWIG_From_int((int)(0x0001))); + SWIG_Python_SetConstant(d, "MIME_HEADERS",SWIG_From_int((int)(0x0002))); + SWIG_Python_SetConstant(d, "MSG_NODIGEST",SWIG_From_int((int)(0x0004))); + SWIG_Python_SetConstant(d, "MSG_DIGEST",SWIG_From_int((int)(0x0008))); + SWIG_Python_SetConstant(d, "MSG_DIGESTNOW",SWIG_From_int((int)(0x0010))); + SWIG_Python_SetConstant(d, "MSG_DIGESTWARN",SWIG_From_int((int)(0x0020))); + SWIG_Python_SetConstant(d, "PAD_1K",SWIG_From_int((int)(0x0020))); + SWIG_Python_SetConstant(d, "PAD_2K",SWIG_From_int((int)(0x0040))); + SWIG_Python_SetConstant(d, "PAD_4K",SWIG_From_int((int)(0x0080))); + SWIG_Python_SetConstant(d, "CBF_PARSE_BRC",SWIG_From_int((int)(0x0100))); + SWIG_Python_SetConstant(d, "CBF_PARSE_PRN",SWIG_From_int((int)(0x0200))); + SWIG_Python_SetConstant(d, "CBF_PARSE_BKT",SWIG_From_int((int)(0x0400))); + SWIG_Python_SetConstant(d, "CBF_PARSE_BRACKETS",SWIG_From_int((int)(0x0700))); + SWIG_Python_SetConstant(d, "CBF_PARSE_TQ",SWIG_From_int((int)(0x0800))); + SWIG_Python_SetConstant(d, "CBF_PARSE_CIF2_DELIMS",SWIG_From_int((int)(0x1000))); + SWIG_Python_SetConstant(d, "CBF_PARSE_DDLm",SWIG_From_int((int)(0x0700))); + SWIG_Python_SetConstant(d, "CBF_PARSE_CIF2",SWIG_From_int((int)(0x1F00))); + SWIG_Python_SetConstant(d, "CBF_PARSE_DEFINES",SWIG_From_int((int)(0x2000))); + SWIG_Python_SetConstant(d, "CBF_PARSE_WIDE",SWIG_From_int((int)(0x4000))); + SWIG_Python_SetConstant(d, "CBF_PARSE_UTF8",SWIG_From_int((int)(0x10000))); + SWIG_Python_SetConstant(d, "HDR_DEFAULT",SWIG_From_int((int)((0x0002|0x0004)))); + SWIG_Python_SetConstant(d, "MIME_NOHEADERS",SWIG_From_int((int)(0x0001))); + SWIG_Python_SetConstant(d, "CBF",SWIG_From_int((int)(0x0000))); + SWIG_Python_SetConstant(d, "CIF",SWIG_From_int((int)(0x0001))); + SWIG_Python_SetConstant(d, "ENC_NONE",SWIG_From_int((int)(0x0001))); + SWIG_Python_SetConstant(d, "ENC_BASE64",SWIG_From_int((int)(0x0002))); + SWIG_Python_SetConstant(d, "ENC_BASE32K",SWIG_From_int((int)(0x0004))); + SWIG_Python_SetConstant(d, "ENC_QP",SWIG_From_int((int)(0x0008))); + SWIG_Python_SetConstant(d, "ENC_BASE10",SWIG_From_int((int)(0x0010))); + SWIG_Python_SetConstant(d, "ENC_BASE16",SWIG_From_int((int)(0x0020))); + SWIG_Python_SetConstant(d, "ENC_BASE8",SWIG_From_int((int)(0x0040))); + SWIG_Python_SetConstant(d, "ENC_FORWARD",SWIG_From_int((int)(0x0080))); + SWIG_Python_SetConstant(d, "ENC_BACKWARD",SWIG_From_int((int)(0x0100))); + SWIG_Python_SetConstant(d, "ENC_CRTERM",SWIG_From_int((int)(0x0200))); + SWIG_Python_SetConstant(d, "ENC_LFTERM",SWIG_From_int((int)(0x0400))); + SWIG_Python_SetConstant(d, "ENC_DEFAULT",SWIG_From_int((int)((0x0002|0x0400|0x0080)))); + SWIG_Python_SetConstant(d, "CBF_UNDEFNODE",SWIG_From_int((int)(CBF_UNDEFNODE))); + SWIG_Python_SetConstant(d, "CBF_LINK",SWIG_From_int((int)(CBF_LINK))); + SWIG_Python_SetConstant(d, "CBF_ROOT",SWIG_From_int((int)(CBF_ROOT))); + SWIG_Python_SetConstant(d, "CBF_DATABLOCK",SWIG_From_int((int)(CBF_DATABLOCK))); + SWIG_Python_SetConstant(d, "CBF_SAVEFRAME",SWIG_From_int((int)(CBF_SAVEFRAME))); + SWIG_Python_SetConstant(d, "CBF_CATEGORY",SWIG_From_int((int)(CBF_CATEGORY))); + SWIG_Python_SetConstant(d, "CBF_COLUMN",SWIG_From_int((int)(CBF_COLUMN))); #if PY_VERSION_HEX >= 0x03000000 return m; #else diff --git a/src/cbf_copy.c b/src/cbf_copy.c index 36b3a822..cde869b5 100644 --- a/src/cbf_copy.c +++ b/src/cbf_copy.c @@ -1574,10 +1574,10 @@ extern "C" { valtemp = ((float *)array)[icount]; - if (valtemp < minval || valtemp > maxval) { + /* if (valtemp < minval || valtemp > maxval) { free(array); free(narray); return CBF_OVERFLOW; - } + }*/ ((signed char *)narray)[icount] = (signed char)valtemp; } @@ -1588,10 +1588,10 @@ extern "C" { valtemp = ((float *)array)[icount]; - if (valtemp < minval || valtemp > maxval) { + /*if (valtemp < minval || valtemp > maxval) { free(array); free(narray); return CBF_OVERFLOW; - } + }*/ ((unsigned char *)narray)[icount] = (unsigned char)valtemp; } @@ -1606,10 +1606,10 @@ extern "C" { valtemp = ((double *)array)[icount]; - if (valtemp < minval || valtemp > maxval) { + /* if (valtemp < minval || valtemp > maxval) { free(array); free(narray); return CBF_OVERFLOW; - } + }*/ ((signed char *)narray)[icount] = (signed char)valtemp; } @@ -1620,10 +1620,10 @@ extern "C" { valtemp = ((double *)array)[icount]; - if (valtemp < minval || valtemp > maxval) { + /*if (valtemp < minval || valtemp > maxval) { free(array); free(narray); return CBF_OVERFLOW; - } + }*/ ((unsigned char *)narray)[icount] = (unsigned char)valtemp; } @@ -1643,10 +1643,10 @@ extern "C" { valtemp = ((float *)array)[icount]; - if (valtemp < minval || valtemp > maxval) { + /*if (valtemp < minval || valtemp > maxval) { free(array); free(narray); return CBF_OVERFLOW; - } + }*/ ((signed short int *)narray)[icount] = (signed short int)valtemp; } @@ -1657,10 +1657,10 @@ extern "C" { valtemp = ((float *)array)[icount]; - if (valtemp < minval || valtemp > maxval) { + /*if (valtemp < minval || valtemp > maxval) { free(array); free(narray); return CBF_OVERFLOW; - } + }*/ ((unsigned short int *)narray)[icount] = (unsigned short int)valtemp; } @@ -1675,10 +1675,10 @@ extern "C" { valtemp = ((double *)array)[icount]; - if (valtemp < minval || valtemp > maxval) { + /*if (valtemp < minval || valtemp > maxval) { free(array); free(narray); return CBF_OVERFLOW; - } + }*/ ((signed short int *)narray)[icount] = (signed short int)valtemp; } @@ -1689,10 +1689,10 @@ extern "C" { valtemp = ((double *)array)[icount]; - if (valtemp < minval || valtemp > maxval) { + /*if (valtemp < minval || valtemp > maxval) { free(array); free(narray); return CBF_OVERFLOW; - } + }*/ ((unsigned short int *)narray)[icount] = (unsigned short int)valtemp; } @@ -1711,10 +1711,10 @@ extern "C" { valtemp = ((float *)array)[icount]; - if (valtemp < minval || valtemp > maxval) { + /*if (valtemp < minval || valtemp > maxval) { free(array); free(narray); return CBF_OVERFLOW; - } + }*/ ((signed int *)narray)[icount] = (signed int)valtemp; } @@ -1725,10 +1725,10 @@ extern "C" { valtemp = ((float *)array)[icount]; - if (valtemp < minval || valtemp > maxval) { + /*if (valtemp < minval || valtemp > maxval) { free(array); free(narray); return CBF_OVERFLOW; - } + }*/ ((unsigned int *)narray)[icount] = (unsigned int)valtemp; } @@ -1743,10 +1743,10 @@ extern "C" { valtemp = ((double *)array)[icount]; - if (valtemp < minval || valtemp > maxval) { + /*if (valtemp < minval || valtemp > maxval) { free(array); free(narray); return CBF_OVERFLOW; - } + }*/ ((signed int *)narray)[icount] = (signed int)valtemp; } @@ -1757,10 +1757,10 @@ extern "C" { valtemp = ((double *)array)[icount]; - if (valtemp < minval || valtemp > maxval) { + /*if (valtemp < minval || valtemp > maxval) { free(array); free(narray); return CBF_OVERFLOW; - } + }*/ ((unsigned int *)narray)[icount] = (unsigned int)valtemp; } @@ -1780,10 +1780,10 @@ extern "C" { valtemp = ((float *)array)[icount]; - if (valtemp < minval || valtemp > maxval) { + /*if (valtemp < minval || valtemp > maxval) { free(array); free(narray); return CBF_OVERFLOW; - } + }*/ ((signed long int *)narray)[icount] = (signed long int)valtemp; } @@ -1794,10 +1794,10 @@ extern "C" { valtemp = ((float *)array)[icount]; - if (valtemp < minval || valtemp > maxval) { + /*if (valtemp < minval || valtemp > maxval) { free(array); free(narray); return CBF_OVERFLOW; - } + }*/ ((unsigned long int *)narray)[icount] = (unsigned long int)valtemp; } @@ -1812,10 +1812,10 @@ extern "C" { valtemp = ((double *)array)[icount]; - if (valtemp < minval || valtemp > maxval) { + /*if (valtemp < minval || valtemp > maxval) { free(array); free(narray); return CBF_OVERFLOW; - } + }*/ ((signed long int *)narray)[icount] = (signed long int)valtemp; } @@ -1826,10 +1826,10 @@ extern "C" { valtemp = ((double *)array)[icount]; - if (valtemp < minval || valtemp > maxval) { + /*if (valtemp < minval || valtemp > maxval) { free(array); free(narray); return CBF_OVERFLOW; - } + }*/ ((unsigned long int *)narray)[icount] = (unsigned long int)valtemp; } @@ -1850,10 +1850,10 @@ extern "C" { valtemp = ((float *)array)[icount]; - if (valtemp < minval || valtemp > maxval) { + /*if (valtemp < minval || valtemp > maxval) { free(array); free(narray); return CBF_OVERFLOW; - } + }* ((signed long long int *)narray)[icount] = (signed long long int)valtemp; } @@ -1864,10 +1864,10 @@ extern "C" { valtemp = ((float *)array)[icount]; - if (valtemp < minval || valtemp > maxval) { + /*if (valtemp < minval || valtemp > maxval) { free(array); free(narray); return CBF_OVERFLOW; - } + }*/ ((unsigned long long int *)narray)[icount] = (unsigned long long int)valtemp; } @@ -1882,10 +1882,10 @@ extern "C" { valtemp = ((double *)array)[icount]; - if (valtemp < minval || valtemp > maxval) { + /*if (valtemp < minval || valtemp > maxval) { free(array); free(narray); return CBF_OVERFLOW; - } + }*/ ((signed long long int *)narray)[icount] = (signed long long int)valtemp; } @@ -1896,10 +1896,10 @@ extern "C" { valtemp = ((double *)array)[icount]; - if (valtemp < minval || valtemp > maxval) { + /*if (valtemp < minval || valtemp > maxval) { free(array); free(narray); return CBF_OVERFLOW; - } + }*/ ((unsigned long long int *)narray)[icount] = (unsigned long long int)valtemp; } @@ -1934,10 +1934,10 @@ extern "C" { valtemp = ((float *)array)[icount]; - if (valtemp < minval || valtemp > maxval) { + /*if (valtemp < minval || valtemp > maxval) { free(array); free(narray); return CBF_OVERFLOW; - } + }*/ vallow = fmod(valtemp,onemore); @@ -1955,10 +1955,10 @@ extern "C" { valtemp = ((float *)array)[icount]; - if (valtemp < minval || valtemp > maxval) { + /*if (valtemp < minval || valtemp > maxval) { free(array); free(narray); return CBF_OVERFLOW; - } + }*/ vallow = fmod(valtemp,onemore); @@ -1980,10 +1980,10 @@ extern "C" { valtemp = ((double *)array)[icount]; - if (valtemp < minval || valtemp > maxval) { + /*if (valtemp < minval || valtemp > maxval) { free(array); free(narray); return CBF_OVERFLOW; - } + }*/ vallow = fmod(valtemp,onemore); @@ -2000,10 +2000,10 @@ extern "C" { valtemp = ((double *)array)[icount]; - if (valtemp < minval || valtemp > maxval) { + /*if (valtemp < minval || valtemp > maxval) { free(array); free(narray); return CBF_OVERFLOW; - } + }*/ vallow = fmod(valtemp,onemore);