@@ -101,16 +101,21 @@ int SimpleStringFull(char *command, double* result) {
101
101
int SimpleString (char * command , char * resultVar , char * result ) {
102
102
PyRun_SimpleString (command );
103
103
104
- PyObject * var = PyObject_GetAttrString (mainModule , resultVar );
104
+ int exists = PyObject_HasAttrString (mainModule , resultVar );
105
105
106
- //PyObject* varStr = PyObject_Repr(var);
107
- PyObject * varStr = PyObject_Str (var );
108
- char * str = PyUnicode_AsUTF8 (varStr );
106
+ if (exists == 1 ) {
107
+ PyObject * var = PyObject_GetAttrString (mainModule , resultVar );
109
108
110
- sprintf (result , "%s" , str );
109
+ //PyObject* varStr = PyObject_Repr(var);
110
+ PyObject * varStr = PyObject_Str (var );
111
+ char * str = PyUnicode_AsUTF8 (varStr );
112
+
113
+ sprintf (result , "%s" , str );
114
+
115
+ Py_DECREF (varStr );
116
+ Py_DECREF (var );
117
+ }
111
118
112
- Py_DECREF (varStr );
113
- Py_DECREF (var );
114
119
return ZF_SUCCESS ;
115
120
}
116
121
@@ -126,7 +131,7 @@ int main(int argc, char **argv) {
126
131
char * result = malloc (sizeof (char ) * 1024 );
127
132
128
133
Initialize ();
129
- SimpleString ("x=2" , "x " , result );
134
+ SimpleString ("x=2" , "y " , result );
130
135
Finalize ();
131
136
132
137
printf (result );
0 commit comments