From 7e168ee79857cc0c9efc4754c64ab6c61b294a19 Mon Sep 17 00:00:00 2001 From: Mike McCormack Date: Tue, 29 Jun 2004 03:49:54 +0000 Subject: [PATCH] Fix refcounting of streams. --- dlls/msi/msiquery.c | 3 +++ dlls/msi/record.c | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/dlls/msi/msiquery.c b/dlls/msi/msiquery.c index 7fb0fad5dce..4a0bf90cad2 100644 --- a/dlls/msi/msiquery.c +++ b/dlls/msi/msiquery.c @@ -235,7 +235,10 @@ UINT WINAPI MsiViewFetch(MSIHANDLE hView, MSIHANDLE *record) db_get_raw_stream( query->db, full_name, &stm ); if( stm ) + { MSI_RecordSetIStream( handle, i, stm ); + IStream_Release( stm ); + } else ERR("failed to get stream\n"); HeapFree( GetProcessHeap(), 0, sval ); diff --git a/dlls/msi/record.c b/dlls/msi/record.c index 5ced6fd8ea1..1c0a47500fe 100644 --- a/dlls/msi/record.c +++ b/dlls/msi/record.c @@ -86,7 +86,7 @@ void MSI_CloseRecord( VOID *arg ) MSIRECORD *rec = (MSIRECORD *) arg; UINT i; - for( i=0; icount; i++ ) + for( i=0; i<=rec->count; i++ ) MSI_FreeField( &rec->fields[i] ); }