79323: [PATCH 2/2] shell32: Pass the object instead of the iface to helper functions.

buildbot at kegel.com buildbot at kegel.com
Mon Sep 26 05:08:29 CDT 2011


This is an experimental automated build and test service.
Please feel free to ignore this email while we work the kinks out.

For more info about this message, see http://wiki.winehq.org/BuildBot

The Buildbot has detected a failed build on builder runtests-default while building Wine.
Full details are available at: http://buildbot.kegel.com/builders/runtests-default/builds/65 (though maybe not for long, as I'm still reinstalling the buildbot periodically while experimenting)
BUILD FAILED: failed shell_3

Errors:
* Call to xpconnect wrapped JSObject produced this error:  *
* Call to xpconnect wrapped JSObject produced this error:  *
alarum: failed command was ../../../wine oleaut32_test.exe.so olepicture.c 
fixme:ole:OleLoadPictureEx (0x11ff10,60,1,{7bf80980-bf32-101a-8bbb-00aa00300cab},x=100,y=100,f=0,0x33fcac), partially implemented.
fixme:ole:OleLoadPictureEx (0x11ff10,50,1,{7bf80980-bf32-101a-8bbb-00aa00300cab},x=100,y=100,f=0,0x33fcd8), partially implemented.
fixme:ole:OLEPictureImpl_Load Unknown magic 0001, 50 read bytes:
01 00 09 00 00 03 19 00 01 00 
09 00 00 03 19 00 00 00 00 00 
0d 00 00 00 00 00 0d 00 00 00 
32 0a 16 00 0b 00 04 00 00 00 
54 65 73 74 03 00 05 00 08 00 
0c 00 03 00 00 00 00 00 
err:ole:OleLoadPictureEx IPersistStream_Load failed
fixme:ole:OleLoadPictureEx (0x11ff10,244,1,{7bf80980-bf32-101a-8bbb-00aa00300cab},x=10,y=10,f=0,0x33fcb0), partially implemented.
err:ole:OLEPictureImpl_Invoke riid was {7bf80981-bf32-101a-8bbb-00aa00300cab} instead of IID_NULL
err:ole:OLEPictureImpl_Invoke riid was {00000000-0000-0000-c000-000000000046} instead of IID_NULL
err:ole:OLEPictureImpl_Invoke param count for DISPATCH_PROPERTYPUT was 0 instead of 1
err:ole:OLEPictureImpl_Invoke null pDispParams not allowed
err:ole:OLEPictureImpl_Invoke null pDispParams not allowed
err:ole:OLEPictureImpl_Invoke null pDispParams not allowed
err:ole:OLEPictureImpl_Invoke invalid dispid 0x2 or wFlags 0x1
err:ole:OLEPictureImpl_Invoke invalid dispid 0xdeadbeef or wFlags 0x2
err:ole:OLEPictureImpl_Invoke param count for DISPATCH_PROPERTYGET was 1 instead of 0
err:ole:OLEPictureImpl_Invoke param count for DISPATCH_PROPERTYGET was 1 instead of 0
fixme:ole:OLEPictureImpl_Render Not quite correct implementation of rendering icons...
olepicture.c:696: Test failed: Color at 5,5 should have changed, but still was 0x00F33C
make: *** [olepicture.ok] Error 1

-------------- next part --------------
From: Michael Stefaniuc <mstefani at redhat.de>
Subject: [PATCH 1/2] shell32: COM cleanup in shellpath.c.
Message-Id: <20110926095437.GA14369 at redhat.com>
Date: Mon, 26 Sep 2011 11:54:37 +0200

---
 dlls/shell32/shellpath.c |   16 ++++++++--------
 1 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/dlls/shell32/shellpath.c b/dlls/shell32/shellpath.c
index 1c723a2..b35cbbf 100644
--- a/dlls/shell32/shellpath.c
+++ b/dlls/shell32/shellpath.c
@@ -3277,7 +3277,7 @@ static HRESULT redirect_known_folder(
 
 struct knownfolder
 {
-    const struct IKnownFolderVtbl *vtbl;
+    IKnownFolder IKnownFolder_iface;
     LONG refs;
     KNOWNFOLDERID id;
     LPWSTR registryPath;
@@ -3285,7 +3285,7 @@ struct knownfolder
 
 static inline struct knownfolder *impl_from_IKnownFolder( IKnownFolder *iface )
 {
-    return (struct knownfolder *)((char *)iface - FIELD_OFFSET( struct knownfolder, vtbl ));
+    return CONTAINING_RECORD( iface, struct knownfolder, IKnownFolder_iface );
 }
 
 static ULONG WINAPI knownfolder_AddRef(
@@ -3643,12 +3643,12 @@ static HRESULT knownfolder_create( void **ppv )
     kf = HeapAlloc( GetProcessHeap(), 0, sizeof(*kf) );
     if (!kf) return E_OUTOFMEMORY;
 
-    kf->vtbl = &knownfolder_vtbl;
+    kf->IKnownFolder_iface.lpVtbl = &knownfolder_vtbl;
     kf->refs = 1;
     memset( &kf->id, 0, sizeof(kf->id) );
     kf->registryPath = NULL;
 
-    *ppv = &kf->vtbl;
+    *ppv = &kf->IKnownFolder_iface.lpVtbl;
 
     TRACE("returning iface %p\n", *ppv);
     return S_OK;
@@ -3656,7 +3656,7 @@ static HRESULT knownfolder_create( void **ppv )
 
 struct foldermanager
 {
-    const struct IKnownFolderManagerVtbl *vtbl;
+    IKnownFolderManager IKnownFolderManager_iface;
     LONG refs;
     UINT num_ids;
     KNOWNFOLDERID *ids;
@@ -3664,7 +3664,7 @@ struct foldermanager
 
 static inline struct foldermanager *impl_from_IKnownFolderManager( IKnownFolderManager *iface )
 {
-    return (struct foldermanager *)((char *)iface - FIELD_OFFSET( struct foldermanager, vtbl ));
+    return CONTAINING_RECORD( iface, struct foldermanager, IKnownFolderManager_iface );
 }
 
 static ULONG WINAPI foldermanager_AddRef(
@@ -3938,7 +3938,7 @@ static HRESULT foldermanager_create( void **ppv )
     fm = HeapAlloc( GetProcessHeap(), 0, sizeof(*fm) );
     if (!fm) return E_OUTOFMEMORY;
 
-    fm->vtbl = &foldermanager_vtbl;
+    fm->IKnownFolderManager_iface.lpVtbl = &foldermanager_vtbl;
     fm->refs = 1;
     fm->num_ids = 0;
 
@@ -3961,7 +3961,7 @@ static HRESULT foldermanager_create( void **ppv )
         }
     }
     TRACE("found %u known folders\n", fm->num_ids);
-    *ppv = &fm->vtbl;
+    *ppv = &fm->IKnownFolderManager_iface;
 
     TRACE("returning iface %p\n", *ppv);
     return S_OK;
-- 
1.7.4.4

From: Michael Stefaniuc <mstefani at redhat.de>
Subject: [PATCH 2/2] shell32: Pass the object instead of the iface to helper functions.
Message-Id: <20110926095835.GB14369 at redhat.com>
Date: Mon, 26 Sep 2011 11:58:35 +0200

---
 dlls/shell32/shellpath.c |   19 ++++++++++++-------
 1 files changed, 12 insertions(+), 7 deletions(-)

diff --git a/dlls/shell32/shellpath.c b/dlls/shell32/shellpath.c
index b35cbbf..25ba4be 100644
--- a/dlls/shell32/shellpath.c
+++ b/dlls/shell32/shellpath.c
@@ -3333,10 +3333,9 @@ static HRESULT WINAPI knownfolder_QueryInterface(
 }
 
 static HRESULT knownfolder_set_id(
-    IKnownFolder *iface,
+    struct knownfolder *knownfolder,
     const KNOWNFOLDERID *kfid)
 {
-    struct knownfolder *knownfolder = impl_from_IKnownFolder( iface );
     HKEY hKey;
     HRESULT hr;
 
@@ -3636,7 +3635,7 @@ static const struct IKnownFolderVtbl knownfolder_vtbl =
     knownfolder_GetFolderDefinition
 };
 
-static HRESULT knownfolder_create( void **ppv )
+static HRESULT knownfolder_create( struct knownfolder **knownfolder )
 {
     struct knownfolder *kf;
 
@@ -3648,9 +3647,9 @@ static HRESULT knownfolder_create( void **ppv )
     memset( &kf->id, 0, sizeof(kf->id) );
     kf->registryPath = NULL;
 
-    *ppv = &kf->IKnownFolder_iface.lpVtbl;
+    *knownfolder = kf;
 
-    TRACE("returning iface %p\n", *ppv);
+    TRACE("returning iface %p\n", &kf->IKnownFolder_iface);
     return S_OK;
 }
 
@@ -3783,6 +3782,7 @@ static HRESULT WINAPI foldermanager_GetFolder(
     IKnownFolder **ppkf)
 {
     struct foldermanager *fm = impl_from_IKnownFolderManager( iface );
+    struct knownfolder *kf;
     HRESULT hr;
 
     TRACE("%s, %p\n", debugstr_guid(rfid), ppkf);
@@ -3792,9 +3792,14 @@ static HRESULT WINAPI foldermanager_GetFolder(
         WARN("unknown folder\n");
         return E_INVALIDARG;
     }
-    hr = knownfolder_create( (void **)ppkf );
+    hr = knownfolder_create( &kf );
     if (SUCCEEDED( hr ))
-        hr = knownfolder_set_id( *ppkf, rfid );
+    {
+        hr = knownfolder_set_id( kf, rfid );
+        *ppkf = &kf->IKnownFolder_iface;
+    }
+    else
+        *ppkf = NULL;
 
     return hr;
 }
-- 
1.7.4.4



More information about the wine-tests-results mailing list