diff --git a/src/bundles/atomic/atomic_cpp/molc.cpp b/src/bundles/atomic/atomic_cpp/molc.cpp
index f6850da98..272656e26 100755
a
|
b
|
extern "C" EXPORT PyObject *atom_idatm_info_map()
|
829 | 829 | disable = enable = NULL; |
830 | 830 | std::cerr << "Can't control garbage collection\n"; |
831 | 831 | } |
832 | | if (disable) Py_XDECREF(PyEval_CallObject(disable, NULL)); |
| 832 | if (disable) Py_XDECREF(PyObject_CallNoArgs(disable)); |
833 | 833 | auto type_obj = PyStructSequence_NewType(&type_desc); |
834 | 834 | // As per https://bugs.python.org/issue20066 and https://bugs.python.org/issue15729, |
835 | 835 | // the type object isn't completely initialized, so... |
… |
… |
extern "C" EXPORT PyObject *atom_idatm_info_map()
|
848 | 848 | Py_DECREF(key); |
849 | 849 | Py_DECREF(val); |
850 | 850 | } |
851 | | if (enable) Py_XDECREF(PyEval_CallObject(enable, NULL)); |
| 851 | if (enable) Py_XDECREF(PyObject_CallNoArgs(enable)); |
852 | 852 | } catch (...) { |
853 | 853 | molc_error(); |
854 | 854 | } |
… |
… |
extern "C" EXPORT void set_residue_insertion_code(void *residues, size_t n, pyob
|
2747 | 2747 | try { |
2748 | 2748 | for (size_t i = 0; i != n; ++i) { |
2749 | 2749 | PyObject* py_ic = static_cast<PyObject*>(ics[i]); |
2750 | | auto size = PyUnicode_GET_DATA_SIZE(py_ic); |
| 2750 | auto size = PyUnicode_GET_LENGTH(py_ic); |
2751 | 2751 | if (size > 1) |
2752 | 2752 | throw std::invalid_argument("Insertion code must be one character or empty string"); |
2753 | 2753 | char val; |
2754 | 2754 | if (size == 0) |
2755 | 2755 | val = ' '; |
2756 | 2756 | else |
2757 | | val = PyUnicode_AS_DATA(py_ic)[0]; |
| 2757 | val = (char)PyUnicode_READ_CHAR(py_ic, 0); |
2758 | 2758 | r[i]->set_insertion_code(val); |
2759 | 2759 | } |
2760 | 2760 | } catch (...) { |