summary |
shortlog |
log |
commit | commitdiff |
review |
tree
raw |
patch |
inline | side by side (from parent 1:
8885425)
One needs to be careful and RTFM: PySequence_GetItem returns a new
reference but, e.g., PyDict_GetItem does not.
Change-Id: I93f08163a2bbf66da2966044c7bfc7abcd140bbd
PyObject *item = PySequence_GetItem(seq, i);
if (PyUnicode_Check(item)) {
jstring value = pythonStringAsJavaString(env, item);
PyObject *item = PySequence_GetItem(seq, i);
if (PyUnicode_Check(item)) {
jstring value = pythonStringAsJavaString(env, item);
(*env)->SetObjectArrayElement(env, array, i, value);
}
else {
(*env)->SetObjectArrayElement(env, array, i, value);
}
else {
throwPythonException(env, "List item not a string");
return NULL;
}
throwPythonException(env, "List item not a string");
return NULL;
}
for (i = 0; i < jlen; i++) {
PyObject *item = PySequence_GetItem(seq, i);
if (PyFloat_Check(item)) {
for (i = 0; i < jlen; i++) {
PyObject *item = PySequence_GetItem(seq, i);
if (PyFloat_Check(item)) {
- double value = PyFloat_AsDouble(item);
+ jdouble value = PyFloat_AsDouble(item);
+ Py_DECREF(item);
(*env)->SetDoubleArrayRegion(env, array, i, 1, &value);
}
else {
(*env)->SetDoubleArrayRegion(env, array, i, 1, &value);
}
else {
throwPythonException(env, "List item not a floating point value");
return NULL;
}
throwPythonException(env, "List item not a floating point value");
return NULL;
}
for (i = 0; i < jlen; i++) {
PyObject *item = PySequence_GetItem(seq, i);
jobject object = pythonObjectAsObject(env, item);
for (i = 0; i < jlen; i++) {
PyObject *item = PySequence_GetItem(seq, i);
jobject object = pythonObjectAsObject(env, item);
(*env)->SetObjectArrayElement(env, array, i, object);
}
(*env)->SetObjectArrayElement(env, array, i, object);
}
PyObject *item = PySequence_GetItem(seq, i);
if (PyBool_Check(item)) {
jboolean value = item == Py_True;
PyObject *item = PySequence_GetItem(seq, i);
if (PyBool_Check(item)) {
jboolean value = item == Py_True;
(*env)->SetBooleanArrayRegion(env, array, i, 1, &value);
}
else {
(*env)->SetBooleanArrayRegion(env, array, i, 1, &value);
}
else {
throwPythonException(env, "List item not a boolean");
return NULL;
}
throwPythonException(env, "List item not a boolean");
return NULL;
}
PyObject *item = PySequence_GetItem(seq, i);
if (PyLong_Check(item)) {
jint value = PyLong_AsLong(item);
PyObject *item = PySequence_GetItem(seq, i);
if (PyLong_Check(item)) {
jint value = PyLong_AsLong(item);
(*env)->SetIntArrayRegion(env, array, i, 1, &value);
}
else {
(*env)->SetIntArrayRegion(env, array, i, 1, &value);
}
else {
throwPythonException(env, "List item not an integer");
return NULL;
}
throwPythonException(env, "List item not an integer");
return NULL;
}
PyObject *item = PySequence_GetItem(seq, i);
if (PyLong_Check(item)) {
jlong value = PyLong_AsLongLong(item);
PyObject *item = PySequence_GetItem(seq, i);
if (PyLong_Check(item)) {
jlong value = PyLong_AsLongLong(item);
(*env)->SetLongArrayRegion(env, array, i, 1, &value);
}
else {
(*env)->SetLongArrayRegion(env, array, i, 1, &value);
}
else {
throwPythonException(env, "List item not an integer");
return NULL;
}
throwPythonException(env, "List item not an integer");
return NULL;
}