return rv;
}
-static ModalFilterProcPtr
+static ModalFilterUPP
Dlg_PassFilterProc(PyObject *callback)
{
PyObject *tmp = Dlg_FilterProc_callback;
+ static ModalFilterUPP UnivFilterUpp = NULL;
+
Dlg_FilterProc_callback = NULL;
if (callback == Py_None) {
Py_XDECREF(tmp);
Py_INCREF(callback);
Dlg_FilterProc_callback = callback;
Py_XDECREF(tmp);
- return &Dlg_UnivFilterProc;
+ if ( UnivFilterUpp == NULL )
+ UnivFilterUpp = NewModalFilterUPP(&Dlg_UnivFilterProc);
+ return UnivFilterUpp;
}
static PyObject *Dlg_UserItemProc_callback = NULL;
if (!PyArg_ParseTuple(_args, "O",
&modalFilter))
return NULL;
- ModalDialog(NewModalFilterProc(Dlg_PassFilterProc(modalFilter)),
+ ModalDialog(Dlg_PassFilterProc(modalFilter),
&itemHit);
_res = Py_BuildValue("h",
itemHit);
&modalFilter))
return NULL;
_rv = Alert(alertID,
- NewModalFilterProc(Dlg_PassFilterProc(modalFilter)));
+ Dlg_PassFilterProc(modalFilter));
_res = Py_BuildValue("h",
_rv);
return _res;
&modalFilter))
return NULL;
_rv = StopAlert(alertID,
- NewModalFilterProc(Dlg_PassFilterProc(modalFilter)));
+ Dlg_PassFilterProc(modalFilter));
_res = Py_BuildValue("h",
_rv);
return _res;
&modalFilter))
return NULL;
_rv = NoteAlert(alertID,
- NewModalFilterProc(Dlg_PassFilterProc(modalFilter)));
+ Dlg_PassFilterProc(modalFilter));
_res = Py_BuildValue("h",
_rv);
return _res;
&modalFilter))
return NULL;
_rv = CautionAlert(alertID,
- NewModalFilterProc(Dlg_PassFilterProc(modalFilter)));
+ Dlg_PassFilterProc(modalFilter));
_res = Py_BuildValue("h",
_rv);
return _res;
return NULL;
}
- if (new == Py_None) {
+ if (new == NULL || new == Py_None) {
new = NULL;
_res = Py_None;
Py_INCREF(Py_None);
OptHandle = OpaqueByValueType("Handle", "OptResObj")
ModalFilterProcPtr = InputOnlyType("PyObject*", "O")
-ModalFilterProcPtr.passInput = lambda name: "NewModalFilterProc(Dlg_PassFilterProc(%s))" % name
+ModalFilterProcPtr.passInput = lambda name: "Dlg_PassFilterProc(%s)" % name
ModalFilterUPP = ModalFilterProcPtr
RgnHandle = OpaqueByValueType("RgnHandle", "ResObj")
return rv;
}
-static ModalFilterProcPtr
+static ModalFilterUPP
Dlg_PassFilterProc(PyObject *callback)
{
PyObject *tmp = Dlg_FilterProc_callback;
+ static ModalFilterUPP UnivFilterUpp = NULL;
+
Dlg_FilterProc_callback = NULL;
if (callback == Py_None) {
Py_XDECREF(tmp);
Py_INCREF(callback);
Dlg_FilterProc_callback = callback;
Py_XDECREF(tmp);
- return &Dlg_UnivFilterProc;
+ if ( UnivFilterUpp == NULL )
+ UnivFilterUpp = NewModalFilterUPP(&Dlg_UnivFilterProc);
+ return UnivFilterUpp;
}
static PyObject *Dlg_UserItemProc_callback = NULL;
return NULL;
}
- if (new == Py_None) {
+ if (new == NULL || new == Py_None) {
new = NULL;
_res = Py_None;
Py_INCREF(Py_None);