Commit cb6cf132 authored by Jack Jansen's avatar Jack Jansen

Some of the newer routines return an OSErr, like most toolbox calls, in stead...

Some of the newer routines return an OSErr, like most toolbox calls, in stead of depending on ResError(). Second half of fix for #531291.

2.2.1 candidate.
parent 89dbd972
......@@ -628,16 +628,13 @@ static PyObject *Res_CloseResFile(PyObject *_self, PyObject *_args)
static PyObject *Res_ResError(PyObject *_self, PyObject *_args)
{
PyObject *_res = NULL;
OSErr _rv;
OSErr _err;
if (!PyArg_ParseTuple(_args, ""))
return NULL;
_rv = ResError();
{
OSErr _err = ResError();
if (_err != noErr) return PyMac_Error(_err);
}
_res = Py_BuildValue("h",
_rv);
_err = ResError();
if (_err != noErr) return PyMac_Error(_err);
Py_INCREF(Py_None);
_res = Py_None;
return _res;
}
......@@ -1222,21 +1219,18 @@ static PyObject *Res_FSpCreateResFile(PyObject *_self, PyObject *_args)
static PyObject *Res_InsertResourceFile(PyObject *_self, PyObject *_args)
{
PyObject *_res = NULL;
OSErr _rv;
OSErr _err;
SInt16 refNum;
RsrcChainLocation where;
if (!PyArg_ParseTuple(_args, "hh",
&refNum,
&where))
return NULL;
_rv = InsertResourceFile(refNum,
where);
{
OSErr _err = ResError();
if (_err != noErr) return PyMac_Error(_err);
}
_res = Py_BuildValue("h",
_rv);
_err = InsertResourceFile(refNum,
where);
if (_err != noErr) return PyMac_Error(_err);
Py_INCREF(Py_None);
_res = Py_None;
return _res;
}
#endif
......@@ -1246,18 +1240,15 @@ static PyObject *Res_InsertResourceFile(PyObject *_self, PyObject *_args)
static PyObject *Res_DetachResourceFile(PyObject *_self, PyObject *_args)
{
PyObject *_res = NULL;
OSErr _rv;
OSErr _err;
SInt16 refNum;
if (!PyArg_ParseTuple(_args, "h",
&refNum))
return NULL;
_rv = DetachResourceFile(refNum);
{
OSErr _err = ResError();
if (_err != noErr) return PyMac_Error(_err);
}
_res = Py_BuildValue("h",
_rv);
_err = DetachResourceFile(refNum);
if (_err != noErr) return PyMac_Error(_err);
Py_INCREF(Py_None);
_res = Py_None;
return _res;
}
#endif
......@@ -1294,7 +1285,7 @@ static PyObject *Res_FSpResourceFileAlreadyOpen(PyObject *_self, PyObject *_args
static PyObject *Res_FSpOpenOrphanResFile(PyObject *_self, PyObject *_args)
{
PyObject *_res = NULL;
OSErr _rv;
OSErr _err;
FSSpec spec;
SignedByte permission;
SInt16 refNum;
......@@ -1302,15 +1293,11 @@ static PyObject *Res_FSpOpenOrphanResFile(PyObject *_self, PyObject *_args)
PyMac_GetFSSpec, &spec,
&permission))
return NULL;
_rv = FSpOpenOrphanResFile(&spec,
permission,
&refNum);
{
OSErr _err = ResError();
if (_err != noErr) return PyMac_Error(_err);
}
_res = Py_BuildValue("hh",
_rv,
_err = FSpOpenOrphanResFile(&spec,
permission,
&refNum);
if (_err != noErr) return PyMac_Error(_err);
_res = Py_BuildValue("h",
refNum);
return _res;
}
......@@ -1321,17 +1308,13 @@ static PyObject *Res_FSpOpenOrphanResFile(PyObject *_self, PyObject *_args)
static PyObject *Res_GetTopResourceFile(PyObject *_self, PyObject *_args)
{
PyObject *_res = NULL;
OSErr _rv;
OSErr _err;
SInt16 refNum;
if (!PyArg_ParseTuple(_args, ""))
return NULL;
_rv = GetTopResourceFile(&refNum);
{
OSErr _err = ResError();
if (_err != noErr) return PyMac_Error(_err);
}
_res = Py_BuildValue("hh",
_rv,
_err = GetTopResourceFile(&refNum);
if (_err != noErr) return PyMac_Error(_err);
_res = Py_BuildValue("h",
refNum);
return _res;
}
......@@ -1342,20 +1325,16 @@ static PyObject *Res_GetTopResourceFile(PyObject *_self, PyObject *_args)
static PyObject *Res_GetNextResourceFile(PyObject *_self, PyObject *_args)
{
PyObject *_res = NULL;
OSErr _rv;
OSErr _err;
SInt16 curRefNum;
SInt16 nextRefNum;
if (!PyArg_ParseTuple(_args, "h",
&curRefNum))
return NULL;
_rv = GetNextResourceFile(curRefNum,
&nextRefNum);
{
OSErr _err = ResError();
if (_err != noErr) return PyMac_Error(_err);
}
_res = Py_BuildValue("hh",
_rv,
_err = GetNextResourceFile(curRefNum,
&nextRefNum);
if (_err != noErr) return PyMac_Error(_err);
_res = Py_BuildValue("h",
nextRefNum);
return _res;
}
......@@ -1407,8 +1386,8 @@ static PyObject *Res_FSCreateResFile(PyObject *_self, PyObject *_args)
if (_err != noErr) return PyMac_Error(_err);
}
_res = Py_BuildValue("O&O&",
PyMac_BuildFSRef, newRef,
PyMac_BuildFSSpec, newSpec);
PyMac_BuildFSRef, &newRef,
PyMac_BuildFSSpec, &newSpec);
return _res;
}
......@@ -1441,7 +1420,7 @@ static PyObject *Res_FSResourceFileAlreadyOpen(PyObject *_self, PyObject *_args)
static PyObject *Res_FSCreateResourceFile(PyObject *_self, PyObject *_args)
{
PyObject *_res = NULL;
OSErr _rv;
OSErr _err;
FSRef parentRef;
UniChar *nameLength__in__;
UniCharCount nameLength__len__;
......@@ -1458,21 +1437,17 @@ static PyObject *Res_FSCreateResourceFile(PyObject *_self, PyObject *_args)
return NULL;
nameLength__len__ = nameLength__in_len__;
forkNameLength__len__ = forkNameLength__in_len__;
_rv = FSCreateResourceFile(&parentRef,
nameLength__len__, nameLength__in__,
0,
(FSCatalogInfo *)0,
forkNameLength__len__, forkNameLength__in__,
&newRef,
&newSpec);
{
OSErr _err = ResError();
if (_err != noErr) return PyMac_Error(_err);
}
_res = Py_BuildValue("hO&O&",
_rv,
PyMac_BuildFSRef, newRef,
PyMac_BuildFSSpec, newSpec);
_err = FSCreateResourceFile(&parentRef,
nameLength__len__, nameLength__in__,
0,
(FSCatalogInfo *)0,
forkNameLength__len__, forkNameLength__in__,
&newRef,
&newSpec);
if (_err != noErr) return PyMac_Error(_err);
_res = Py_BuildValue("O&O&",
PyMac_BuildFSRef, &newRef,
PyMac_BuildFSSpec, &newSpec);
return _res;
}
#endif
......@@ -1482,7 +1457,7 @@ static PyObject *Res_FSCreateResourceFile(PyObject *_self, PyObject *_args)
static PyObject *Res_FSOpenResourceFile(PyObject *_self, PyObject *_args)
{
PyObject *_res = NULL;
OSErr _rv;
OSErr _err;
FSRef ref;
UniChar *forkNameLength__in__;
UniCharCount forkNameLength__len__;
......@@ -1495,16 +1470,12 @@ static PyObject *Res_FSOpenResourceFile(PyObject *_self, PyObject *_args)
&permissions))
return NULL;
forkNameLength__len__ = forkNameLength__in_len__;
_rv = FSOpenResourceFile(&ref,
forkNameLength__len__, forkNameLength__in__,
permissions,
&refNum);
{
OSErr _err = ResError();
if (_err != noErr) return PyMac_Error(_err);
}
_res = Py_BuildValue("hh",
_rv,
_err = FSOpenResourceFile(&ref,
forkNameLength__len__, forkNameLength__in__,
permissions,
&refNum);
if (_err != noErr) return PyMac_Error(_err);
_res = Py_BuildValue("h",
refNum);
return _res;
}
......@@ -1573,7 +1544,7 @@ static PyMethodDef Res_methods[] = {
{"CloseResFile", (PyCFunction)Res_CloseResFile, 1,
"(short refNum) -> None"},
{"ResError", (PyCFunction)Res_ResError, 1,
"() -> (OSErr _rv)"},
"() -> None"},
{"CurResFile", (PyCFunction)Res_CurResFile, 1,
"() -> (short _rv)"},
......@@ -1644,12 +1615,12 @@ static PyMethodDef Res_methods[] = {
#if TARGET_API_MAC_CARBON
{"InsertResourceFile", (PyCFunction)Res_InsertResourceFile, 1,
"(SInt16 refNum, RsrcChainLocation where) -> (OSErr _rv)"},
"(SInt16 refNum, RsrcChainLocation where) -> None"},
#endif
#if TARGET_API_MAC_CARBON
{"DetachResourceFile", (PyCFunction)Res_DetachResourceFile, 1,
"(SInt16 refNum) -> (OSErr _rv)"},
"(SInt16 refNum) -> None"},
#endif
#if TARGET_API_MAC_CARBON
......@@ -1659,17 +1630,17 @@ static PyMethodDef Res_methods[] = {
#if TARGET_API_MAC_CARBON
{"FSpOpenOrphanResFile", (PyCFunction)Res_FSpOpenOrphanResFile, 1,
"(FSSpec spec, SignedByte permission) -> (OSErr _rv, SInt16 refNum)"},
"(FSSpec spec, SignedByte permission) -> (SInt16 refNum)"},
#endif
#if TARGET_API_MAC_CARBON
{"GetTopResourceFile", (PyCFunction)Res_GetTopResourceFile, 1,
"() -> (OSErr _rv, SInt16 refNum)"},
"() -> (SInt16 refNum)"},
#endif
#if TARGET_API_MAC_CARBON
{"GetNextResourceFile", (PyCFunction)Res_GetNextResourceFile, 1,
"(SInt16 curRefNum) -> (OSErr _rv, SInt16 nextRefNum)"},
"(SInt16 curRefNum) -> (SInt16 nextRefNum)"},
#endif
{"FSOpenResFile", (PyCFunction)Res_FSOpenResFile, 1,
"(FSRef ref, SignedByte permission) -> (short _rv)"},
......@@ -1680,12 +1651,12 @@ static PyMethodDef Res_methods[] = {
#if TARGET_API_MAC_CARBON
{"FSCreateResourceFile", (PyCFunction)Res_FSCreateResourceFile, 1,
"(FSRef parentRef, Buffer nameLength, Buffer forkNameLength) -> (OSErr _rv, FSRef newRef, FSSpec newSpec)"},
"(FSRef parentRef, Buffer nameLength, Buffer forkNameLength) -> (FSRef newRef, FSSpec newSpec)"},
#endif
#if TARGET_API_MAC_CARBON
{"FSOpenResourceFile", (PyCFunction)Res_FSOpenResourceFile, 1,
"(FSRef ref, Buffer forkNameLength, SignedByte permissions) -> (OSErr _rv, SInt16 refNum)"},
"(FSRef ref, Buffer forkNameLength, SignedByte permissions) -> (SInt16 refNum)"},
#endif
{"Resource", (PyCFunction)Res_Resource, 1,
"Convert a string to a resource object.\n\nThe created resource object is actually just a handle,\napply AddResource() to write it to a resource file.\nSee also the Handle() docstring.\n"},
......
......@@ -8,14 +8,15 @@ from macsupport import *
class ResMixIn:
def checkit(self):
OutLbrace()
Output("OSErr _err = ResError();")
Output("if (_err != noErr) return PyMac_Error(_err);")
OutRbrace()
if self.returntype.__class__ != OSErrType:
OutLbrace()
Output("OSErr _err = ResError();")
Output("if (_err != noErr) return PyMac_Error(_err);")
OutRbrace()
FunctionGenerator.checkit(self) # XXX
class ResFunction(ResMixIn, FunctionGenerator): pass
class ResMethod(ResMixIn, MethodGenerator): pass
class ResFunction(ResMixIn, OSErrFunctionGenerator): pass
class ResMethod(ResMixIn, OSErrMethodGenerator): pass
RsrcChainLocation = Type("RsrcChainLocation", "h")
FSCatalogInfoBitmap = FakeType("0") # Type("FSCatalogInfoBitmap", "l")
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment