Alistair Leslie-Hughes : msado15: Clear interface point after release.

Alexandre Julliard julliard at winehq.org
Thu Mar 18 16:43:53 CDT 2021


Module: wine
Branch: master
Commit: 83b558c5f320bfd952c9af49d8a3e326629c2979
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=83b558c5f320bfd952c9af49d8a3e326629c2979

Author: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Date:   Thu Mar 18 16:29:42 2021 +1100

msado15: Clear interface point after release.

Since we clear the recordset pointer, we need to reassign it when retreiving Fields.

Signed-off-by: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Signed-off-by: Hans Leidekker <hans at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/msado15/recordset.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/dlls/msado15/recordset.c b/dlls/msado15/recordset.c
index b690e243189..a86936eb037 100644
--- a/dlls/msado15/recordset.c
+++ b/dlls/msado15/recordset.c
@@ -488,6 +488,7 @@ static ULONG WINAPI fields_Release( Fields *iface )
     if (!refs)
     {
         if (fields->recordset) _Recordset_Release( &fields->recordset->Recordset_iface );
+        fields->recordset = NULL;
         WARN( "not destroying %p\n", fields );
         return InterlockedIncrement( &fields->refs );
     }
@@ -864,7 +865,6 @@ static void close_recordset( struct recordset *recordset )
     if (!recordset->fields) return;
     col_count = get_column_count( recordset );
 
-    recordset->fields->recordset = NULL;
     Fields_Release( &recordset->fields->Fields_iface );
     recordset->fields = NULL;
 
@@ -1092,6 +1092,7 @@ static HRESULT WINAPI recordset_get_Fields( _Recordset *iface, Fields **obj )
     {
         /* yes, this adds a reference to the recordset instead of the fields object */
         _Recordset_AddRef( &recordset->Recordset_iface );
+        recordset->fields->recordset = recordset;
         *obj = &recordset->fields->Fields_iface;
         return S_OK;
     }




More information about the wine-cvs mailing list