msi: Avoid a leak when a query is executed more than once.

This commit is contained in:
Hans Leidekker 2011-09-05 11:47:37 +02:00 committed by Alexandre Julliard
parent d5a98e5d85
commit a8b51497e5
1 changed files with 6 additions and 0 deletions

View File

@ -73,6 +73,7 @@ typedef struct tagMSIWHEREVIEW
struct expr *cond;
UINT rec_index;
MSIORDERINFO *order_info;
UINT error;
} MSIWHEREVIEW;
#define INITIAL_REORDER_SIZE 16
@ -617,6 +618,9 @@ static UINT WHERE_execute( struct tagMSIVIEW *view, MSIRECORD *record )
if( !table )
return ERROR_FUNCTION_FAILED;
if (wv->reorder)
return wv->error;
r = init_reorder(wv);
if (r != ERROR_SUCCESS)
return r;
@ -648,7 +652,9 @@ static UINT WHERE_execute( struct tagMSIVIEW *view, MSIRECORD *record )
if (wv->order_info)
r = wv->order_info->error;
msi_free( rows );
wv->error = r;
return r;
}