diff options
| author | Daniel M. Pelt <D.M.Pelt@cwi.nl> | 2015-07-21 13:56:18 +0200 | 
|---|---|---|
| committer | Willem Jan Palenstijn <Willem.Jan.Palenstijn@cwi.nl> | 2015-07-23 11:57:20 +0200 | 
| commit | 645122f4b365ce44849afda2ed8a711ae649ed76 (patch) | |
| tree | a4fd30d42344b6de2bfd14f0e600a16b55828620 | |
| parent | 14ce794a1654f82fe8ac414e56e842242bece729 (diff) | |
| download | astra-645122f4b365ce44849afda2ed8a711ae649ed76.tar.gz astra-645122f4b365ce44849afda2ed8a711ae649ed76.tar.bz2 astra-645122f4b365ce44849afda2ed8a711ae649ed76.tar.xz astra-645122f4b365ce44849afda2ed8a711ae649ed76.zip | |
Fix 'get_registered' in Matlab with Python 3
| -rw-r--r-- | src/PluginAlgorithm.cpp | 23 | 
1 files changed, 18 insertions, 5 deletions
| diff --git a/src/PluginAlgorithm.cpp b/src/PluginAlgorithm.cpp index 5c779fd..5d6d733 100644 --- a/src/PluginAlgorithm.cpp +++ b/src/PluginAlgorithm.cpp @@ -249,11 +249,24 @@ std::map<std::string, std::string> CPluginAlgorithmFactory::getRegisteredMap(){      PyObject *key, *value;      Py_ssize_t pos = 0;      while (PyDict_Next(pluginDict, &pos, &key, &value)) { -        PyObject * keyb = PyObject_Bytes(key); -        PyObject * valb = PyObject_Bytes(value); -        ret[PyBytes_AsString(keyb)] = PyBytes_AsString(valb); -        Py_DECREF(keyb); -        Py_DECREF(valb); +        PyObject *keystr = PyObject_Str(key); +        if(keystr!=NULL){ +            PyObject *valstr = PyObject_Str(value); +            if(valstr!=NULL){ +                PyObject * keyb = PyObject_CallMethod(six,"b","O",keystr); +                if(keyb!=NULL){ +                    PyObject * valb = PyObject_CallMethod(six,"b","O",valstr); +                    if(valb!=NULL){ +                        ret[PyBytes_AsString(keyb)] = PyBytes_AsString(valb); +                        Py_DECREF(valb); +                    } +                    Py_DECREF(keyb); +                } +                Py_DECREF(valstr); +            } +            Py_DECREF(keystr); +        } +        logPythonError();      }      return ret;  } | 
