Status of 64 bit Wine
Hi list, Every once in a while my boss asks me about 64 bit wine. And today was the day. So what's the status? From my understanding there are two parts to the question. First, is anyone using a 64 bit build of Wine? How successfully? Does it pass the internal wine tests? And second, is there any progress on loading 64 bit windows binaries in Wine? My understanding was that changes were needed to gcc to make that happen. Is that correct? Is there any progress on that score? And please correct any misunderstandings I may have. Thanks... mo
Re: winetest.exe now available on test.winehq.org
On Saturday 29 November 2008 15:40:33 Paul Vriens wrote: > This also means that Paul Millars winetest is no longer available. Yup, this is true. After providing winetest.exe for (I think) a little over 4 years, quisquiliae is falling silent and WineHQ is picking up the baton for winetest.exe. > I'd like to thank Paul for all the hard work he did with keeping up that > site and providing us for years with a cross compiled version of winetest. I > also like to thank the people that provided the necessary MinGW patches in > the past to get that winetest compiled again. I'd like to add my vote of thanks to the people who have helped out behind the scenes, providing useful suggestions or sending in patches for MinGW so we can keep winetest.exe rolling out the door (in alphabetical order) Alexandre Julliard, John Klehm, Kevin Koltzau, Saulius Krasuckas, Stefan Leichter, Hans Leidekker, Mike McCormack, Juan Melgarejo, Detlef Riekenberg, Sebastian Schauenburg, Brian Vincent, and Paul Vriens. (and anyone else I've inadvertently forgotten) My thanks to you all! Cheers, Paul. signature.asc Description: This is a digitally signed message part.
Re: [08/12] msxml3: Add an internal IUnknown object for xmlnode
Am Samstag, den 29.11.2008, 10:52 +0100 schrieb Michael Karcher: > This makes the xmlnode structures kind-of aggregatable COM objects. > The explanation of the new reference management is in the rather verbose > comment at the top of the new node_unk.c file. For reference, the comment explaining the proposed reference counting scheme is at the end of this mail. This patch got the comment on IRC: "julliard: mkarcher: the comment explaining that COM rules are not followed rings an alarm bell". So, let me first explain the problem I'm trying to solve. In libxml2, the application is responsible for lifetime management, whereas in msxml3, lifetime management is done by reference counting. The XML documents are highly cyclic data structures: There is one real root, called the "document node". In XML documents, it has a single child, the so called "document element". The document element is the root of the so called DOM tree. Every node in the DOM tree has a get_parent and a get_ownerDocument method. Also, each non-leaf node has a get_children method. This is opposed to the standard container-containee model, where the container owns a reference on the containees, but the containees do not know about being in a container. Reference counting in that case is straightforward. Currently, msxml3 implements reference counting in the following way: As soon as an interface object for any DOM node is requested, the reference count of the document is increased by one, and as soon as the interface looses its final reference, the document's reference count is decremented. If the document's reference count reaches zero, no pointer to any object in the DOM tree is out anymore, so the document can be deleted. This seems to work nicely, but has two major catches, that made me do this rewrite of the reference management: a) msxml3 has methods to splice subtrees. b) msxml3 can create nodes nodes owned by a document, that are not in the DOM tree Point a) means that the document a node belongs to is not constant over the lifetime of the node. As in the current model, the node needs to take a reference on its current document, reference counts have to be adjusted. The xmldoc_release and xmldoc_add_ref function calls in removeChild, insertBefore (and alike) seem to take care of this. But as the bullet already said, it is not just splicing the node passed into the splicing function, but a whole subtree! That means that all interface objects to child nodes have to move their reference to the new document. Alas, there is *no* *way* in current wine to find all interface objects for a given node, so there is no way to tell these interface objects to move their references. As there is also no way just to know *how* *many* interface objects are out for a given node, let alone for a whole subtree, reference-correct moving is impossible. Point b) means that just freeing the nodes in the DOM tree on document destruction does not get all the nodes belonging to the document. This is taken care of in the orphan list. The (benign) problem with the orphan list approach is that the so called orphan subtrees, i.e. subtrees that are not part of the document get not freed as soon as no references to the subtree are out anymore, but not until there are no references to any node that is associated with the document. Think put_documentElement, that replaces the whole DOM tree, making the old tree orphan. This might be quite a lot of wasted memory. Now, lets look at what can be done. To solve the important issue in part a, there are two possible approaches: a1) Move to a concept that doesn't need the missing information a2) Make the missing information available. My patch went the route of a1), but I think a2) is also possible: We might count reference to a node in the _private element of the node, so the number of references to a node is at hand. If a subtree is spliced, we would have to traverse the whole subtree to collect the number of references in the subtree to move from the old document to the new document. Another a2) approach is to count the number of references to the whole subtree inside the _private element. This makes obtaining the number of references to the subtree an O(1) operation, but updating the interface object count of one node means the interface count of all parents has to be updated, too. While this is not as expensive as a subtree traversal, updating interface object counts is a very common operation that ought to be O(1) too, and not O(depth). To solve the issue of b), the same things are imaginable. If a node gets orphan, check whether the whole subtree is orphan, and nuke it if it is. If it is not, add it to the orphan list. If later the last reference into that subtree is freed, one has to detect that the subtree is orphan. One could do that by checking on every interface release whether the subtree is now orphan. As this is a "is there any reference to the subtree" question, the first a2 approach is out immediatel
Re: Bugzilla's down again
On Wed, Nov 26, 2008 at 2:15 PM, Austin English <[EMAIL PROTECTED]> wrote: > On Wed, Nov 26, 2008 at 4:12 PM, Jeremy Newman <[EMAIL PROTECTED]> wrote: >> mysqld didn't crash at least. This seems to be a temporary issue that >> cleared up when the server load came back down. >> >> I don't think the server has been down hardly at all? Where are you getting >> your "down so much" from? >> >> -Newman >> >> Austin English wrote: >>> >>> Different error than usual though: >>> >>> >>> >>> 500 Internal Server Error >>> >>> Internal Server Error >>> The server encountered an internal error or >>> misconfiguration and was unable to complete >>> your request. >>> Please contact the server administrator, >>> [EMAIL PROTECTED] and inform them of the time the error occurred, >>> and anything you might have done that may have >>> caused the error. >>> More information about this error may be available >>> in the server error log. >>> >>> >>> Is there anything we can do to prevent it from going down so much? >>> >> > > Sorry if that came off as rash. It's been much better in the past few > months. But I was referring to the semi-frequent mysql crashes. I'm on > bugzilla a lot, so even if it's only down for a few minutes, I usually > catch it. > > -- > -Austin > > > I notice it from time to time as well. 95% of the time it works fine, but every so often, for about 30 minutes or so, I get an error 500 or a mysql error.
Re: Error Message and Office 2000
2008/11/30 [EMAIL PROTECTED] <[EMAIL PROTECTED]>: > Hi, > > I'm in Southern California. > I did a search for the event when my > Office 2000 Professional gave me an error > message. It won't setup. > The event was 1000 > and the fault address is the same as a > read out of your computer that you posted online. > http://www.winehq.org/pipermail/wine-devel/2003-July/018313.html > Did you ever figure out how to get it to work? It looks like you want the wine-users mailing list. Alternatively, you could try CrossOver instead: http://www.codeweavers.com/products/cxlinux/download_trial/ -- Rob Shearman
Patchwatcher locked up?
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Hello Dan, did the patchwatcher look up? The last patch it shows is from 30-Nov-2008 14:01. bye michael -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.5 (GNU/Linux) Comment: Using GnuPG with Red Hat - http://enigmail.mozdev.org iD8DBQFJNCYg08alQ5mXm14RAnsPAJ44C2vVFmSnD5OknaoMGPkSuB+VFQCfbb6J PhbFmQ4U1nOrHIw5JycPWbc= =005q -END PGP SIGNATURE-
Re: Did anyone have any trouble compiling wine today? Or was it just me ....
>On Mon, Dec 1, 2008 at 9:06 AM, Susan Cragin <[EMAIL PROTECTED]> wrote: I don't know off hand then. I'd say run a regression test. As a guess, you might try removing: #ifdef HAVE_LINUX_SERIAL_H #include #endif but that would just be a kludgy workaround. -- -Austin >>> >>>Will try both tomorrow. >>>Thanks. >> >> Austin: >> Did not see above section, but did see this, so removed it. >> #ifdef HAVE_LINUX_INPUT_H >> #include >> #endif >> Did not work. Got same error. :( > >Regression test? As Detleft said, it may be kernel related. > >-- >-Austin Found something similar to what Detlef found, so filed a Ubuntu bug against the kernel. https://bugs.launchpad.net/ubuntu/+source/linux/+bug/303711 Also tried new kernel, 2.6.28-1-ub, but got same result. Susan
Re: netapi32: Why my patch is ignored?
On Monday 01 December 2008 18:45:22 Alexandre Julliard wrote: > Vitaly Perov <[EMAIL PROTECTED]> writes: > > +GetCurrentDirectoryA(MAX_PATH, tmpPath); > > +result = SetCurrentDirectoryW(path); > > +SetCurrentDirectoryA(tmpPath); > > +if (!result) return ERROR_FILE_NOT_FOUND; > > This is not the right way to test if a directory exists. Thank you for your answer. I will fix it. -- Best wishes, Vitaly Perov Russia, Saint-Petersburg. www.etersoft.ru
Re: mshtml: suppress module unloading while gecko is loaded
On Mon, Dec 1, 2008 at 12:08 AM, Paul Bryan Roberts <[EMAIL PROTECTED]> wrote: > In mshtml, I count 7 dll reference count inc/dec pairs, including the server > lock pair, in main.c, htmldoc.c and protocol.c I count 28 pairs of > InterlockedDecrement / InterlockedIncrement calls around the creation / > destruction of active objects throughout the dll. That would seem to imply > 22 missing reference count inc/dec pairs. I suspect Alexandre didn't commit my lame patch because he wants us to have a go at getting CanDLLUnloadNow right. Thanks for the analysis. > If I finish my script, it will report how many pairs are missing for which > dlls and in which source files That sounds quite handy. > which might help make a decision whether the > take up Mike Hearn's suggestion of never unloading anything. Even that > should involve work taking out the reference counts that are already there. I have a feeling we're not quite in the "memory is free" era yet... > I do not see how the classic WinAPI regression tests can catch this kind of > bug other than being a tautologous test of the creation/destruction all the > known active objects. If Mike Hearn's suggestion is not taken up, the > script might also be useful for regression test purposes. Your script is doing static analysis ... maybe it should be integrated into http://people.redhat.com/mstefani/wine/smatch/ Making it a smatch rule might be easier than writing it from scratch. - Dan
Re: netapi32: Why my patch is ignored?
Vitaly Perov wrote: > What is wrong with my patch? > > I have fixed all errors found by Juan Lang. > I resent this patch several times, but hasn't received any answer. > > Why my patch is ignored? > > Maybe something is still wrong, but why somebody just tell me about it? > > "Juan Lang" <[EMAIL PROTECTED]> wrote: >> Hi Vitaliy, overall your patch looks pretty good. A few minor points: >> >> +FIXME("(%s %d %p) partially implemented\n", >> debugstr_w(servername), level, buf); >> Because you add a more specific FIXME for every unimplemented path, it >> seems to me this would be better as a TRACE. >> >> +result = RegCreateKeyExA(HKEY_LOCAL_MACHINE, regKey, 0, NULL, 0, >> KEY_WRITE, >> +NULL, &hKey, &disposition); >> +if (result != ERROR_SUCCESS) >> +{ >> +FIXME("Unable to open/create key 'HKLM\\%s'\n", regKey); >> +return result; >> This shouldn't be a FIXME, as there's nothing to "fix" in the code: >> if the key couldn't be created, there's a setup problem or some other >> unrecoverable error. A TRACE is fine. > >> +/* FIXME: A duplicate patch checking should be implemented here */ >> Do you mean a duplicate path? > > > > > I'm not sure about this, but I don't like the mixture of A and W-calls. -- Cheers, Paul.
Re: [1/4] winemenubuilder: move path normalization to Process_Link and Process_URL
On Monday 01 December 2008, Francois Gouget wrote: > On Sun, 30 Nov 2008, Ambroz Bizjak wrote: > [...] > > > To allow that, I've modified winemenubuilder to record created shortcuts > > to registry, and my service will obtain and maintain the list of .lnk/url > > files from there. > > The general idea is good, but I don't think you should store these paths > in the registry. Instead the daemon should ask for file change > notifications for the relevant special folders (CSIDL_STARTMENU, etc) > and act accordingly when a .lnk or .url file gets added / deleted > somewhere in thes directories. In that case the daemon would still have to store the list of known files, so that if a shortcut is deleted while Wine is not running, or if my service is not running at that particular time, its removal could still be detected. Another issue with your suggestion is that it would complicate watching. Assuming the notification functions don't work everywhere, and they may have race conditions*, we still have to poll for changes - that means recursing the folders. Last, my service does not yet remove created icons. With the current design, it is largely a matter of also recording the icon names to registry in winemenubuilder. It would be quite hard and hackish to locate the icon from the .desktop file. It would even be hard to get the logical location of the shortcut only from the location of the .lnk, because functions in menubuilder that do that require the file to exist. * I once deleted two watched files in some folder, but only one notification was generated, and my program found only one of the files missing.
Re: netapi32: Why my patch is ignored?
Vitaly Perov <[EMAIL PROTECTED]> writes: > +GetCurrentDirectoryA(MAX_PATH, tmpPath); > +result = SetCurrentDirectoryW(path); > +SetCurrentDirectoryA(tmpPath); > +if (!result) return ERROR_FILE_NOT_FOUND; This is not the right way to test if a directory exists. -- Alexandre Julliard [EMAIL PROTECTED]
netapi32: Why my patch is ignored?
What is wrong with my patch? I have fixed all errors found by Juan Lang. I resent this patch several times, but hasn't received any answer. Why my patch is ignored? Maybe something is still wrong, but why somebody just tell me about it? "Juan Lang" <[EMAIL PROTECTED]> wrote: >Hi Vitaliy, overall your patch looks pretty good. A few minor points: > >+ FIXME("(%s %d %p) partially implemented\n", >debugstr_w(servername), level, buf); >Because you add a more specific FIXME for every unimplemented path, it >seems to me this would be better as a TRACE. > >+ result = RegCreateKeyExA(HKEY_LOCAL_MACHINE, regKey, 0, NULL, 0, >KEY_WRITE, >+ NULL, &hKey, &disposition); >+ if (result != ERROR_SUCCESS) >+ { >+ FIXME("Unable to open/create key 'HKLM\\%s'\n", regKey); >+ return result; >This shouldn't be a FIXME, as there's nothing to "fix" in the code: >if the key couldn't be created, there's a setup problem or some other >unrecoverable error. A TRACE is fine. >+ /* FIXME: A duplicate patch checking should be implemented here */ >Do you mean a duplicate path? -- Best wishes, Vitaly Perov Russia, Saint-Petersburg. www.etersoft.ru From 073fc32326d2b48be58487d291b0c304e6aa34f4 Mon Sep 17 00:00:00 2001 From: Vitaly Perov <[EMAIL PROTECTED]> Date: Tue, 18 Nov 2008 16:10:10 +0300 Subject: [PATCH] netapi32: Add partial implementation of NetShareAdd --- dlls/netapi32/share.c | 121 - include/lmshare.h | 11 + 2 files changed, 130 insertions(+), 2 deletions(-) diff --git a/dlls/netapi32/share.c b/dlls/netapi32/share.c index f19f732..8fecf95 100644 --- a/dlls/netapi32/share.c +++ b/dlls/netapi32/share.c @@ -18,6 +18,9 @@ #include "wine/debug.h" #include "lm.h" #include "winerror.h" +#include "winbase.h" +#include "winreg.h" +#include "wine/unicode.h" WINE_DEFAULT_DEBUG_CHANNEL(share); @@ -106,10 +109,124 @@ NET_API_STATUS WINAPI NetShareGetInfo(LMSTR servername, LMSTR netname, / * NetShareAdd (NETAPI32.@) + * + * PARAMS + * servername[I] Pointer to a string with the name of the server + * level [I] Data information level + * bufptr[I] Pointer to the buffer that specifies the data + * parm_err [O] Index of the first member of the share information + * structure that causes the ERROR_INVALID_PARAMETER + * + * RETURNS + * If successful, the function returns NERR_Success + * On failure it returns: + * ERROR_ACCESS_DENIED User has no access to the requested information + * ERROR_INVALID_LEVEL Value of 'level' is not correct + * ERROR_INVALID_NAME TThe character or file system name is not correct + * ERROR_INVALID_PARAMETER Wrong parameter + * NERR_DuplicateShare The given name is already in use + * NERR_RedirectedPath The operation is not valid for a redirected resource + * NERR_UnknownDevDir The device or directory does not exist + * + * FIXME + * Sharing of the given resource is unimplemented. + * Now this function just create a registry entry */ NET_API_STATUS WINAPI NetShareAdd(LMSTR servername, DWORD level, LPBYTE buf, LPDWORD parm_err) { -FIXME("Stub (%s %d %p %p)\n", debugstr_w(servername), level, buf, parm_err); -return ERROR_NOT_SUPPORTED; +static const CHAR regKey[] = +"SYSTEM\\CurrentControlSet\\Services\\lanmanserver\\Shares"; +static const WCHAR formatStr[] = { 'C','S','C','F','l','a','g','s','=','%', +'d',' ','M','a','x','U','s','e','s','=','%','u',' ','P','a','t','h', +'=','%','s',' ','P','e','r','m','i','s','s','i','o','n','s','=','%', +'d',' ','R','e','m','a','r','k','=','%','s',' ','T','y','p','e','=', +'%','d',0}; +WCHAR paramStr[512]; +CHARtmpPath[MAX_PATH]; +SHARE_INFO_2*shi2; +LPWSTR netname = NULL; +DWORD type; +LPWSTR remark = NULL; +DWORD permissions; +DWORD max_uses; +DWORD current_uses; +LPWSTR path = NULL; +LPWSTR passwd = NULL; +HKEYhKey; +INT result; +DWORD disposition; + +TRACE("(%s %d %p %p) partially implemented\n", debugstr_w(servername), +level, buf, parm_err); + +*parm_err = 0; + +if (servername && lstrlenW(servername)) +{ +FIXME("Only local sharing is supported\n"); +return ERROR_NOT_SUPPORTED; +} + +switch (level) +{ +case 2: +shi2 = (SHARE_INFO_2*) buf; +netname = shi2->shi2_netname; +type = shi2->shi2_type; +remark = shi2->shi2_remark; +permissions = shi2->shi2_permissions; +max_uses = shi2->shi2_max_uses; +current_uses = shi2->shi2_current_uses; +path = shi2->shi2_path; +passwd = sh
Re: Did anyone have any trouble compiling wine today? Or was it just me ....
>>I don't know off hand then. I'd say run a regression test. As a guess, >>you might try removing: >>#ifdef HAVE_LINUX_SERIAL_H >>#include >>#endif >> >>but that would just be a kludgy workaround. >> >>-- >>-Austin > >Will try both tomorrow. >Thanks. Austin: Did not see above section, but did see this, so removed it. #ifdef HAVE_LINUX_INPUT_H #include #endif Did not work. Got same error. :(
Mono integration to Wine
Hi, Wine is still using Mono by creating a new process altough it has support for _CorExeMain and _CorDllMain. There is a MonoFixupCorEE method exported by mono.dll that could be used. I also did some research on executing exe assemblies without creating a mono.exe process on MS Windows by injecting code to the new process before initialization to load Mono. Note that because mscoree.dll is loaded at a very early process initilization stage no side-by-side manifests can be used that is required by newer MSVCRTs so I'll most likely create a separate DLL that will load mono.dll later in _CorExeMain or _CorDllMain. For the above mentioned reason it may be better not to use MonoFixupCorEE yet. I would like to receive comments on mixed-mode assembly support of Mono on Wine and if there are people willing to update the Loader to call _CorValidateImage, _CorExeMain (real entry point is not called for EXEs) and _CorImageUnloading for managed images. MSVCRT also should call CorExitProcess on exit. Kornél
Re: [2/2] shell32/autocomplete: add unit tests for autocomplete
Jan de Mooij wrote: > Hi Paul, > > Thanks for your reply. > > On Mon, Dec 1, 2008 at 3:35 PM, Paul Vriens <[EMAIL PROTECTED]> wrote: > >> There is an unrelated change to shelllink.c in this patch. > > It's not unrelated, initguid.h needs to be included exactly once or > you will get linker warnings (multiple definitions for...). > It only compiles if i move it to autocomplete.c, looks like it should > be in the first file which uses it.. > > Regards, > > Jan de Mooij > But I guess that's the reason it's not applied/committed. If you move the include of initguid.h to after windows.h it will work, not? -- Cheers, Paul.
Re: [2/2] shell32/autocomplete: add unit tests for autocomplete
Hi Paul, Thanks for your reply. On Mon, Dec 1, 2008 at 3:35 PM, Paul Vriens <[EMAIL PROTECTED]> wrote: > There is an unrelated change to shelllink.c in this patch. It's not unrelated, initguid.h needs to be included exactly once or you will get linker warnings (multiple definitions for...). It only compiles if i move it to autocomplete.c, looks like it should be in the first file which uses it.. Regards, Jan de Mooij
Re: [2/2] shell32/autocomplete: add unit tests for autocomplete
Jan de Mooij wrote: > Tests pass on 98, XP and Wine (after applying my previous patch) > > > > > There is an unrelated change to shelllink.c in this patch. -- Cheers, Paul.
Re: [1/4] winemenubuilder: move path normalization to Process_Link and Process_URL
On Sun, 30 Nov 2008, Ambroz Bizjak wrote: [...] > To allow that, I've modified winemenubuilder to record created shortcuts to > registry, and my service will obtain and maintain the list of .lnk/url files > from there. The general idea is good, but I don't think you should store these paths in the registry. Instead the daemon should ask for file change notifications for the relevant special folders (CSIDL_STARTMENU, etc) and act accordingly when a .lnk or .url file gets added / deleted somewhere in thes directories. -- Francois Gouget <[EMAIL PROTECTED]> http://fgouget.free.fr/ Advice is what we ask for when we already know the answer but wish we didn't -- Eric Jong
Fwd: [1/2] shell32/autocomplete: fix handling of WM_KILLFOCUS messages (try 2)
Hello, Anybody knows why this patch was rejected? Thanks in advance. -- Forwarded message -- From: Jan de Mooij <[EMAIL PROTECTED]> Date: Sat, Nov 29, 2008 at 8:57 PM Subject: [1/2] shell32/autocomplete: fix handling of WM_KILLFOCUS messages (try 2) To: [EMAIL PROTECTED]
Re: wined3d: Sign-compare warnings fix
Austin English wrote: >> This->baseShader.device; >> int i; >> -unsigned int extra_constants_needed = 0; >> +unsigned int i, extra_constants_needed = 0; > > You forgot to remove 'int i' here. > Thanks, Austin. Good catch! -- Andy.
USB device drivers support
Hello, I sent patch "Add support of WDM drivers for USB devices." in October and received such reply from Alexandre Julliard: > Your design needs a lot more thought. You can't add all these > Wine-specific modules, or make winedevice special-case usb devices, or > poll the server for the add_device request like you do. All this needs > to be properly integrated in the existing infrastructure. I`d like to ask about better way of modifying patches which add USB device drivers support before doing something. Wineusb and wineusbhub can be moved to usbhub.sys. This driver creates a device which is used as second argument for AddDevice on Windows XP. So no wine-specific modules will be added. Using wineserver to call AddDevice can be avoided if move code which loads device drivers and code which enumerates devices and call AddDevice to one process. This can be made if use one winedevice process for all drivers. This will allow every driver to use IRP, DEVICE_OBJECTs and other structures created by other driver and will help to implement such functions as IoGetDeviceObjectPointer. Can I do so? Or there are some reasons which do not allow? Thanks, Alexander
Re: [advapi32/tests] Fix some crashes on NT4 (Try2)
On Sat, Nov 29, 2008 at 12:52 PM, Paul Vriens <[EMAIL PROTECTED]> wrote: > Hi, > > (Try2 removes some useless LocalFree's when NewAcl is NULL, duh). > > NT4 crashes at 3 distinct places. The first two we can get rid of by > removing > the LocalFree on failure. The third one we can skip as we can detect NT4 > easily. > Just to be a little bit more precise. NT4 doesn't crash at those LocalFree's but leaving either of them in will make sure the test crashes a bit later. -- Cheers, Paul.
Re: ole32: implement CoGetCallContext and CoSwitchCallContext
2008/11/30 Austin English <[EMAIL PROTECTED]>: > +if( !ppv) > +return E_INVALIDARG; > + > +/* get COM tls */ > +info = COM_CurrentInfo(); > +if( !info) Please try to keep the style consistent here. The style that the rest of the file uses is a space after the "if" and no space inside the brackets. > +return E_OUTOFMEMORY; > + > +hr = RPC_E_CALL_COMPLETE; > +if( info->ctx_call) > +{ > +hr = IUnknown_QueryInterface( info->ctx_call, riid, ppv); > +} > + > +if (FAILED(hr)) ... > +/* Receives a pointer to the call context object of the call currently > + in progress. This value is returned so that the original call context > + can be restored by the custom marshaller. > + The returned pointer will be NULL if there was no call in progress. */ > +*ppOldObject = info->ctx_call; > + > +/* It may be NULL if you are calling CoSwitchCallContext to switch back > + to the original call context and there was no original call context. > */ > +info->ctx_call = pNewObject; You don't take a reference to the object that is passed-in. This is against COM semantics and so requires a test case to prove that this is indeed what the function does. -- Rob Shearman
Re: wineconsole: Wait on events in curses backend using select instead of poll
On Mon, 1 Dec 2008, Kai Blin wrote: On Sunday 30 November 2008 00:52:57 Martin Storsjö wrote: poll can't handle terminal devices on Darwin, since Tiger. See the following discussion: http://lists.apple.com/archives/Darwin-dev/2006/Apr/msg00066.html There's reasons we switched from select to poll. You can't just switch back to As far as I can tell from the history of curses.c, it never used select (directly) before, it used WaitForMultipleObjects, which was changed into a poll in 267d38e1bc78541221d20cc72a759acc78908e8e, "wineconsole: Don't use a Win32 wait on a Unix file descriptor." But there may of course be other reasons for using poll, which I don't know about. select to work around a OSX _bug_. If Apple can't get their act together to fix this, this needs to go behind a configure check/ifdef. Yes, that's true. I'm not too familiar with the wine codebase and customs, so instead of nagging you with questions on what a proper solution would look like, should I just file a bug with the actual issue; that the curses based console is unusable on Darwin at the moment? // Martin
Re: d3d9 : do not proceed reset or release from another thread than the one which created the device.
2008/11/30 Jérôme Gardou <[EMAIL PROTECTED]>: > -if (ref == 0) { > +if (ref <= 0) { This doesn't work, of course. ref is an ULONG. The check for Reset should probably go into wined3d.
Error Message and Office 2000
Hi, I'm in Southern California. I did a search for the event when my Office 2000 Professional gave me an error message. It won't setup. The event was 1000 and the fault address is the same as a read out of your computer that you posted online. http://www.winehq.org/pipermail/wine-devel/2003-July/018313.html Did you ever figure out how to get it to work? Thanks! Ciao! Connie
Re: mshtml: suppress module unloading while gecko is loaded
> Dan Kegel wrote: > Thanks to Mike Hearn for pointing out that mshtml reference > counting was wrong, and Jacek for pointing out how to fix > it for now. > > Once gecko is loaded, don't let mshtml unload. > This fixes a crash in starting Sketchup (bug 16164), > and probably fixes a number of other apps that > went pear-shaped after unloading mshtml... > Bug 14065 is another instance of the same thing. I did a quick survey of DllCanUnloadNow() on the Wine 1.1.8 code base a couple of weeks ago ... 55 DllCanUnloadNow routines (in some 272 dll subdirectories) 11 FIXME stubs return S_FALSE 7 FIXME stubs return S_OK 3 without FIXME return S_FALSE 2 without FIXME return S_OK 32 appear to be real implementations However, the first in the list (alphabetically) is in astream/main.c. It's reference counter (ddl_ref) is not incremented or decremented anywhere. I count four pairs of inc/dec omissions. In mshtml, I count 7 dll reference count inc/dec pairs, including the server lock pair, in main.c, htmldoc.c and protocol.c I count 28 pairs of InterlockedDecrement / InterlockedIncrement calls around the creation / destruction of active objects throughout the dll. That would seem to imply 22 missing reference count inc/dec pairs. If I finish my script, it will report how many pairs are missing for which dlls and in which source files, which might help make a decision whether the take up Mike Hearn's suggestion of never unloading anything. Even that should involve work taking out the reference counts that are already there. I do not see how the classic WinAPI regression tests can catch this kind of bug other than being a tautologous test of the creation/destruction all the known active objects. If Mike Hearn's suggestion is not taken up, the script might also be useful for regression test purposes. Cheers,