diff options
Diffstat (limited to 'libshiboken')
-rw-r--r-- | libshiboken/bindingmanager.cpp | 9 | ||||
-rw-r--r-- | libshiboken/conversions.h | 17 | ||||
-rw-r--r-- | libshiboken/sbkpython.h | 24 |
3 files changed, 17 insertions, 33 deletions
diff --git a/libshiboken/bindingmanager.cpp b/libshiboken/bindingmanager.cpp index 15c478e88..26a3e1897 100644 --- a/libshiboken/bindingmanager.cpp +++ b/libshiboken/bindingmanager.cpp @@ -21,13 +21,16 @@ */ #include "basewrapper.h" -#include <cstddef> -#include <fstream> #include "basewrapper_p.h" #include "bindingmanager.h" #include "google/dense_hash_map" #include "sbkdbg.h" #include "gilstate.h" +#include "sbkstring.h" + +#include <cstddef> +#include <fstream> + namespace Shiboken { @@ -241,7 +244,7 @@ PyObject* BindingManager::getOverride(const void* cptr, const char* methodName) } } - PyObject* pyMethodName = SBK_PyString_FromCString(methodName); + PyObject* pyMethodName = Shiboken::String::fromCString(methodName); PyObject* method = PyObject_GetAttr((PyObject*)wrapper, pyMethodName); if (method && PyMethod_Check(method) diff --git a/libshiboken/conversions.h b/libshiboken/conversions.h index 03d914a33..2749c2999 100644 --- a/libshiboken/conversions.h +++ b/libshiboken/conversions.h @@ -28,6 +28,7 @@ #include <memory> #include <typeinfo> +#include "sbkstring.h" #include "sbkenum.h" #include "basewrapper.h" #include "bindingmanager.h" @@ -451,19 +452,23 @@ template <typename CString> struct Converter_CString { // Note: 0 is also a const char* in C++, so None is accepted in checkType - static inline bool checkType(PyObject* pyObj) { return pyObj == Py_None || PyBytes_Check(pyObj); } - static inline bool isConvertible(PyObject* pyObj) { return pyObj == Py_None || PyBytes_Check(pyObj); } + static inline bool checkType(PyObject* pyObj) { + return Shiboken::String::check(pyObj); + } + static inline bool isConvertible(PyObject* pyObj) { + return Shiboken::String::convertible(pyObj); + } static inline PyObject* toPython(void* cppobj) { return toPython(reinterpret_cast<CString>(cppobj)); } static inline PyObject* toPython(CString cppobj) { if (!cppobj) Py_RETURN_NONE; - return PyBytes_FromString(cppobj); + return Shiboken::String::fromCString(cppobj); } static inline CString toCpp(PyObject* pyobj) { if (pyobj == Py_None) return 0; - return PyBytes_AS_STRING(pyobj); + return Shiboken::String::toCString(pyobj); } }; @@ -474,14 +479,14 @@ template <> struct Converter<std::string> : Converter_CString<std::string> static inline PyObject* toPython(void* cppobj) { return toPython(*reinterpret_cast<std::string*>(cppobj)); } static inline PyObject* toPython(std::string cppObj) { - return PyBytes_FromString(cppObj.c_str()); + return Shiboken::String::fromCString(cppObj.c_str()); } static inline std::string toCpp(PyObject* pyobj) { if (pyobj == Py_None) return 0; - return std::string(PyBytes_AS_STRING(pyobj)); + return std::string(Shiboken::String::toCString(pyobj)); } }; diff --git a/libshiboken/sbkpython.h b/libshiboken/sbkpython.h index 24b70fe6d..84f92d25e 100644 --- a/libshiboken/sbkpython.h +++ b/libshiboken/sbkpython.h @@ -38,19 +38,7 @@ #define Py_TPFLAGS_CHECKTYPES 0 #define SBK_NB_BOOL(x) (x).nb_bool - #define SBK_STR_NAME "bytes" #define SBK_PyMethod_New PyMethod_New - #define SBK_PyString_FromCString PyUnicode_FromString - #define SBK_PyString_FromFormat PyUnicode_FromFormat - #define SBK_PyString_CompareWithASCIIString PyUnicode_CompareWithASCIIString - - // Module MACROS - #define SBK_MODULE_INIT_ERROR 0 - #define SBK_MODULE_INIT_FUNCTION_BEGIN(ModuleName) \ - extern "C" SBK_EXPORT_MODULE PyObject* PyInit_##ModuleName() { - - #define SBK_MODULE_INIT_FUNCTION_END \ - return module; } #else // Note: if there wasn't for the old-style classes, only a PyNumber_Check would suffice. @@ -59,18 +47,6 @@ #define SBK_NB_BOOL(x) (x).nb_nonzero #define SBK_STR_NAME "str" #define SBK_PyMethod_New(X, Y) PyMethod_New(X, Y, (PyObject*)Py_TYPE(Y)) - #define SBK_PyString_FromCString PyBytes_FromString - #define SBK_PyString_FromFormat PyString_FromFormat - #define SBK_PyString_CompareWithASCIIString(X, Y) strcmp(PyString_AS_STRING(X), Y) - - // Module MACROS - #define SBK_MODULE_INIT_ERROR - #define SBK_MODULE_INIT_FUNCTION_BEGIN(ModuleName) \ - extern "C" SBK_EXPORT_MODULE void init##ModuleName() - - #define SBK_MODULE_INIT_FUNCTION_END \ - } - #endif #endif |