aboutsummaryrefslogtreecommitdiffstats
path: root/libshiboken/conversions.h
diff options
context:
space:
mode:
authorRenato Filho <renato.filho@openbossa.org>2011-09-28 15:48:27 -0300
committerHugo Parente Lima <hugo.pl@gmail.com>2012-03-08 16:18:17 -0300
commit52fdebcb0b3822180a374ee821f3503d746656c1 (patch)
tree3fd0757a3a5efb0bc3688838c817bb72f10299da /libshiboken/conversions.h
parentc6b9bb836c98a6bcf922ad6ad4dda60e3383d41b (diff)
Update string usage to new Shiboken::String API.
Diffstat (limited to 'libshiboken/conversions.h')
-rw-r--r--libshiboken/conversions.h17
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));
}
};