mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
make sure that function doesn't return while structure is
holding pointer to a stack variable. Also, simplify logic. git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@10234 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
@@ -2073,32 +2073,31 @@ gboolean gnc_xfer_dialog_run_until_done( XferDialog *xferData )
|
|||||||
{
|
{
|
||||||
gboolean result_ok = FALSE;
|
gboolean result_ok = FALSE;
|
||||||
|
|
||||||
if( xferData )
|
if( NULL == xferData ) return FALSE;
|
||||||
{
|
|
||||||
xferData->result_p = &result_ok;
|
|
||||||
while( TRUE )
|
|
||||||
{
|
|
||||||
gnome_dialog_run( GNOME_DIALOG(xferData->dialog) );
|
|
||||||
|
|
||||||
/* See if the dialog is still there. For various reasons, the
|
|
||||||
* user could have hit OK but remained in the dialog. We don't
|
|
||||||
* want to return processing back to anyone else until we clear
|
|
||||||
* off this dialog, so if the dialog is still there we'll just
|
|
||||||
* run it again.
|
|
||||||
*/
|
|
||||||
|
|
||||||
DEBUG("find component");
|
xferData->result_p = &result_ok;
|
||||||
if( !gnc_find_first_gui_component( DIALOG_TRANSFER_CM_CLASS,
|
while( TRUE )
|
||||||
find_xfer, xferData ) )
|
{
|
||||||
{
|
gnome_dialog_run( GNOME_DIALOG(xferData->dialog) );
|
||||||
/* no more dialog, and OK was clicked, so assume it's all good */
|
|
||||||
return( result_ok );
|
/* See if the dialog is still there. For various reasons, the
|
||||||
}
|
* user could have hit OK but remained in the dialog. We don't
|
||||||
/* else run the dialog again */
|
* want to return processing back to anyone else until we clear
|
||||||
}
|
* off this dialog, so if the dialog is still there we'll just
|
||||||
|
* run it again.
|
||||||
|
*/
|
||||||
|
|
||||||
|
DEBUG("find component");
|
||||||
|
if( !gnc_find_first_gui_component( DIALOG_TRANSFER_CM_CLASS,
|
||||||
|
find_xfer, xferData ) )
|
||||||
|
{
|
||||||
|
/* no more dialog, and OK was clicked, so assume it's all good */
|
||||||
|
xferData->result_p = NULL;
|
||||||
|
return( result_ok );
|
||||||
|
}
|
||||||
|
/* else run the dialog again */
|
||||||
}
|
}
|
||||||
|
return FALSE;
|
||||||
return( FALSE );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user