/* Given a string buffer containing Python source code, compile it return and return a code object as a new reference. */ static PyObject * compile_source(char *pathname, PyObject *source) { PyObject *code, *fixed_source; fixed_source = normalize_line_endings(source); if (fixed_source == NULL) return NULL; code = Py_CompileString(PyString_AsString(fixed_source), pathname, Py_file_input); Py_DECREF(fixed_source); return code; }
/* Given a string buffer containing Python source code, compile it and return a code object as a new reference. */ static PyObject * compile_source(PyObject *pathname, PyObject *source) { PyObject *code, *fixed_source; fixed_source = normalize_line_endings(source); if (fixed_source == NULL) { return NULL; } code = Py_CompileStringObject(PyBytes_AsString(fixed_source), pathname, Py_file_input, NULL, -1); Py_DECREF(fixed_source); return code; }
/* Given a string buffer containing Python source code, compile it return and return a code object as a new reference. */ static PyObject * compile_source(PyObject *pathname, PyObject *source) { PyObject *code, *fixed_source, *pathbytes; pathbytes = PyUnicode_EncodeFSDefault(pathname); if (pathbytes == NULL) return NULL; fixed_source = normalize_line_endings(source); if (fixed_source == NULL) { Py_DECREF(pathbytes); return NULL; } code = Py_CompileString(PyBytes_AsString(fixed_source), PyBytes_AsString(pathbytes), Py_file_input); Py_DECREF(pathbytes); Py_DECREF(fixed_source); return code; }