pyConvertBackDynamic function Null safety

Object? pyConvertBackDynamic (
  1. Pointer<PyObject> result
)

Convers a python object back to a dart representation

Implementation

Object? pyConvertBackDynamic(Pointer<PyObject> result) {
  if (result == nullptr) {
    if (pyErrOccurred()) {
      throw UnimplementedError('Python error occurred');
    }
    return null;
  }

  if (result == dartpyc.Py_None) {
    dartpyc.Py_DecRef(result);
    return null;
  } else if (pyIsBool(result)) {
    if (result == dartpyc.Py_True) {
      dartpyc.Py_DecRef(result);
      return true;
    }
    dartpyc.Py_DecRef(result);
    return false;
  } else {
    final res = dartpyc.PyLong_AsLong(result);
    if (!pyErrOccurred()) {
      dartpyc.Py_DecRef(result);
      return res;
    }
  }
  throw UnimplementedError();
}