Commit 2c6cf972 authored by Jack Jansen's avatar Jack Jansen

Handling of defaultLocation argument was wrong, causing a crash when used. Fixed.

parent 3d6163ad
......@@ -147,6 +147,7 @@ filldialogoptions(PyObject *d,
int pos = 0;
PyObject *key, *value;
char *keystr;
AEDesc *defaultLocation_storage;
NavGetDefaultDialogOptions(opt);
......@@ -157,8 +158,15 @@ filldialogoptions(PyObject *d,
}
keystr = PyString_AsString(key);
if( strcmp(keystr, "defaultLocation") == 0 ) {
if ( !PyArg_Parse(value, "O&", AEDesc_Convert, defaultLocationP) )
if ( (defaultLocation_storage = PyMem_NEW(AEDesc, 1)) == NULL ) {
PyErr_NoMemory();
return 0;
}
if ( !PyArg_Parse(value, "O&", AEDesc_Convert, defaultLocation_storage) ) {
PyMem_DEL(defaultLocation_storage);
return 0;
}
*defaultLocationP = defaultLocation_storage;
} else if( strcmp(keystr, "version") == 0 ) {
if ( !PyArg_Parse(value, "h", &opt->version) )
return 0;
......@@ -435,6 +443,7 @@ nav_NavGetFile(self, args, kw)
return NULL;
err = NavGetFile(defaultLocation, &reply, &dialogOptions,
eventProc, previewProc, filterProc, typeList, (void *)dict);
PyMem_XDEL(defaultLocation);
if ( err ) {
PyErr_Mac(ErrorObject, err);
return NULL;
......@@ -471,6 +480,7 @@ nav_NavPutFile(self, args, kw)
return NULL;
err = NavPutFile(defaultLocation, &reply, &dialogOptions,
eventProc, fileType, fileCreator, (void *)dict);
PyMem_XDEL(defaultLocation);
if ( err ) {
PyErr_Mac(ErrorObject, err);
return NULL;
......@@ -606,6 +616,7 @@ nav_NavChooseFile(self, args, kw)
return NULL;
err = NavChooseFile(defaultLocation, &reply, &dialogOptions,
eventProc, previewProc, filterProc, typeList, (void *)dict);
PyMem_XDEL(defaultLocation);
if ( err ) {
PyErr_Mac(ErrorObject, err);
return NULL;
......@@ -641,6 +652,7 @@ nav_NavChooseFolder(self, args, kw)
return NULL;
err = NavChooseFolder(defaultLocation, &reply, &dialogOptions,
eventProc, filterProc, (void *)dict);
PyMem_XDEL(defaultLocation);
if ( err ) {
PyErr_Mac(ErrorObject, err);
return NULL;
......@@ -676,6 +688,7 @@ nav_NavChooseVolume(self, args, kw)
return NULL;
err = NavChooseVolume(defaultLocation, &reply, &dialogOptions,
eventProc, filterProc, (void *)dict);
PyMem_XDEL(defaultLocation);
if ( err ) {
PyErr_Mac(ErrorObject, err);
return NULL;
......@@ -711,6 +724,7 @@ nav_NavChooseObject(self, args, kw)
return NULL;
err = NavChooseObject(defaultLocation, &reply, &dialogOptions,
eventProc, filterProc, (void *)dict);
PyMem_XDEL(defaultLocation);
if ( err ) {
PyErr_Mac(ErrorObject, err);
return NULL;
......@@ -744,6 +758,7 @@ nav_NavNewFolder(self, args, kw)
if (!filldialogoptions(dict, &defaultLocation, &dialogOptions, &eventProc, NULL, NULL, NULL, NULL, NULL))
return NULL;
err = NavNewFolder(defaultLocation, &reply, &dialogOptions, eventProc, (void *)dict);
PyMem_XDEL(defaultLocation);
if ( err ) {
PyErr_Mac(ErrorObject, err);
return NULL;
......
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