summaryrefslogtreecommitdiff
path: root/qpid/cpp/include
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/cpp/include')
-rw-r--r--qpid/cpp/include/qpid/swig_perl_typemaps.i12
-rw-r--r--qpid/cpp/include/qpid/swig_python_typemaps.i6
-rw-r--r--qpid/cpp/include/qpid/swig_ruby_typemaps.i9
3 files changed, 19 insertions, 8 deletions
diff --git a/qpid/cpp/include/qpid/swig_perl_typemaps.i b/qpid/cpp/include/qpid/swig_perl_typemaps.i
index da24bfe402..da949a9498 100644
--- a/qpid/cpp/include/qpid/swig_perl_typemaps.i
+++ b/qpid/cpp/include/qpid/swig_perl_typemaps.i
@@ -51,9 +51,9 @@
STRLEN len;
char *ptr = SvPV(value, len);
qpid::types::Variant v = qpid::types::Variant(std::string(ptr,len));
- if (SvUTF8(value)) {
- v.setEncoding("utf8");
- }
+ // if (SvUTF8(value)) {
+ v.setEncoding("utf8");
+ // }
return v;
}
}
@@ -103,9 +103,9 @@
case qpid::types::VAR_STRING : {
const std::string val(v->asString());
result = newSVpvn(val.c_str(), val.size());
- if( v->getEncoding() == "utf8" ) {
- SvUTF8_on(result);
- }
+ // if( v->getEncoding() == "utf8" ) {
+ SvUTF8_on(result);
+ // }
break;
}
case qpid::types::VAR_MAP : {
diff --git a/qpid/cpp/include/qpid/swig_python_typemaps.i b/qpid/cpp/include/qpid/swig_python_typemaps.i
index 25a4e46b18..d6f112bdf7 100644
--- a/qpid/cpp/include/qpid/swig_python_typemaps.i
+++ b/qpid/cpp/include/qpid/swig_python_typemaps.i
@@ -60,7 +60,11 @@ typedef int Py_ssize_t;
if (PyFloat_Check(value)) return qpid::types::Variant(PyFloat_AS_DOUBLE(value));
if (PyInt_Check(value)) return qpid::types::Variant(int64_t(PyInt_AS_LONG(value)));
if (PyLong_Check(value)) return qpid::types::Variant(int64_t(PyLong_AsLongLong(value)));
- if (PyString_Check(value)) return qpid::types::Variant(std::string(PyString_AS_STRING(value)));
+ if (PyString_Check(value)) {
+ qpid::types::Variant v = qpid::types::Variant(std::string(PyString_AS_STRING(value)));
+ v.setEncoding("utf8");
+ return v;
+ }
if (PyDict_Check(value)) {
qpid::types::Variant::Map map;
PyToMap(value, &map);
diff --git a/qpid/cpp/include/qpid/swig_ruby_typemaps.i b/qpid/cpp/include/qpid/swig_ruby_typemaps.i
index 1a07cc86b0..b7befb7291 100644
--- a/qpid/cpp/include/qpid/swig_ruby_typemaps.i
+++ b/qpid/cpp/include/qpid/swig_ruby_typemaps.i
@@ -27,9 +27,16 @@
void RbToList(VALUE, qpid::types::Variant::List*);
qpid::types::Variant RbToVariant(VALUE value) {
+ printf("RbToVariant is of type %d\n", TYPE(value));
switch (TYPE(value)) {
case T_FLOAT: return qpid::types::Variant(NUM2DBL(value));
- case T_STRING: return qpid::types::Variant(StringValuePtr(value));
+ case T_STRING: {
+ qpid::types::Variant v = qpid::types::Variant();
+ v = StringValuePtr(value));
+ v.setEncoding("utf8");
+ return v;
+ }
+ break;
case T_FIXNUM: return qpid::types::Variant((int64_t) FIX2LONG(value));
case T_BIGNUM: return qpid::types::Variant((int64_t) NUM2LL(value));
case T_TRUE: return qpid::types::Variant(true);