diff options
author | Renato Filho <renato.filho@openbossa.org> | 2011-09-28 15:48:27 -0300 |
---|---|---|
committer | Hugo Parente Lima <hugo.pl@gmail.com> | 2012-03-08 16:18:17 -0300 |
commit | 52fdebcb0b3822180a374ee821f3503d746656c1 (patch) | |
tree | 3fd0757a3a5efb0bc3688838c817bb72f10299da /libshiboken/conversions.h | |
parent | c6b9bb836c98a6bcf922ad6ad4dda60e3383d41b (diff) |
Update string usage to new Shiboken::String API.
Diffstat (limited to 'libshiboken/conversions.h')
-rw-r--r-- | libshiboken/conversions.h | 17 |
1 files changed, 11 insertions, 6 deletions
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)); } }; |