From 43c2de230d926bf3befc7dc55b51e7b37ee5a58f Mon Sep 17 00:00:00 2001 From: Just van Rossum Date: Thu, 3 Jan 2002 20:45:47 +0000 Subject: [PATCH] fixed SetEventParameter() signature: removed unneccesary length arg. --- Mac/Modules/carbonevt/CarbonEvtscan.py | 5 ++++- Mac/Modules/carbonevt/CarbonEvtsupport.py | 6 ++++++ Mac/Modules/carbonevt/_CarbonEvtmodule.c | 16 ++++++++-------- 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/Mac/Modules/carbonevt/CarbonEvtscan.py b/Mac/Modules/carbonevt/CarbonEvtscan.py index e93baf3d03f..37faa5467bb 100644 --- a/Mac/Modules/carbonevt/CarbonEvtscan.py +++ b/Mac/Modules/carbonevt/CarbonEvtscan.py @@ -107,7 +107,10 @@ class CarbonEvents_Scanner(Scanner_OSX): # ] def makerepairinstructions(self): - return [] + return [ + ([("UInt32", 'inSize', "InMode"), ("void_ptr", 'inDataPtr', "InMode")], + [("MyInBuffer", 'inDataPtr', "InMode")]) + ] if __name__ == "__main__": main() diff --git a/Mac/Modules/carbonevt/CarbonEvtsupport.py b/Mac/Modules/carbonevt/CarbonEvtsupport.py index 0ce2af8b10f..8ed13eb09ad 100644 --- a/Mac/Modules/carbonevt/CarbonEvtsupport.py +++ b/Mac/Modules/carbonevt/CarbonEvtsupport.py @@ -34,6 +34,12 @@ EventTypeSpec_ptr = OpaqueType("EventTypeSpec", "EventTypeSpec") void_ptr = stringptr # here are some types that are really other types +class MyVarInputBufferType(VarInputBufferType): + def passInput(self, name): + return "%s__len__, %s__in__" % (name, name) + +MyInBuffer = MyVarInputBufferType('char', 'long', 'l') # (buf, len) + EventTime = double EventTimeout = EventTime EventTimerInterval = EventTime diff --git a/Mac/Modules/carbonevt/_CarbonEvtmodule.c b/Mac/Modules/carbonevt/_CarbonEvtmodule.c index eef1e3c3618..8488a2f378f 100755 --- a/Mac/Modules/carbonevt/_CarbonEvtmodule.c +++ b/Mac/Modules/carbonevt/_CarbonEvtmodule.c @@ -215,19 +215,19 @@ static PyObject *EventRef_SetEventParameter(EventRefObject *_self, PyObject *_ar OSStatus _err; OSType inName; OSType inType; - UInt32 inSize; - char* inDataPtr; - if (!PyArg_ParseTuple(_args, "O&O&ls", + char *inDataPtr__in__; + long inDataPtr__len__; + int inDataPtr__in_len__; + if (!PyArg_ParseTuple(_args, "O&O&s#", PyMac_GetOSType, &inName, PyMac_GetOSType, &inType, - &inSize, - &inDataPtr)) + &inDataPtr__in__, &inDataPtr__in_len__)) return NULL; + inDataPtr__len__ = inDataPtr__in_len__; _err = SetEventParameter(_self->ob_itself, inName, inType, - inSize, - inDataPtr); + inDataPtr__len__, inDataPtr__in__); if (_err != noErr) return PyMac_Error(_err); Py_INCREF(Py_None); _res = Py_None; @@ -386,7 +386,7 @@ static PyMethodDef EventRef_methods[] = { {"ReleaseEvent", (PyCFunction)EventRef_ReleaseEvent, 1, "() -> None"}, {"SetEventParameter", (PyCFunction)EventRef_SetEventParameter, 1, - "(OSType inName, OSType inType, UInt32 inSize, char* inDataPtr) -> None"}, + "(OSType inName, OSType inType, Buffer inDataPtr) -> None"}, {"GetEventClass", (PyCFunction)EventRef_GetEventClass, 1, "() -> (UInt32 _rv)"}, {"GetEventKind", (PyCFunction)EventRef_GetEventKind, 1,