gerard patel writes:
> At 08:25 PM 4/2/00 +0200, you wrote:
> >Hallo,
> >
> >at the end of february, there was a thread going on with that subject.
> >No resolution was given.
> >
> >Now I noticed my registry truncated too. I can't get it back. Even
> >wehn I start with some backup registry, after one call to wine it is
> >truncated. "regapi setValue" also doesn't cure.
> >
> >I don't remember adding some registry related value to wine.conf for
> >monthes...
> 
> Do you have files like reg00.tmp in your .wine directory ? I remember one
> time having 5 such files after Wine had exited. Maybe there is a problem here
> (server crashed ?)
> If yes, maybe you could try to add to RegSaveKeyA in dlls/advapi32/registry.c
> a line to display a warn when there is an error !=  ERROR_ALREADY_EXISTS
> for CreateFile.
> I have no particular idea, but it seems disturbing to have an unexpected
> error and not display any debug message; maybe it could bring some
> light to your problem.
> 
I traced the problem down to some stack trashing. But I didn't resolve 
the smash yet:-(

Despite the arguments obviously set up right, the call  gets know
to the server with wrong arguments:

08060478: open_key() = c0000034 { hkey=-1 }
08060478: set_registry_levels( current=1414155767, saving=983103,version=1 )
                                       ^^^^^^^^^^         ^^^^^^
08060478: set_registry_levels() = 0

Changing the #ifdef to 0 in

> cvs diff -u -7 wine/misc/registry.c
@@ -348,15 +360,20 @@
     }
 
     if (lstrcmpiA(buf,"yes")) all = 1;
 
     /* set saving level (0 for saving everything, 1 for saving only modified keys) */
     req->current = 1;
     req->saving  = !all;
-    req->version = PROFILE_GetWineIniBool( "registry", "UseNewFormat", 0 ) ? 2 : 1;
+#if 1
+    req->version = (PROFILE_GetWineIniBool( "registry", "UseNewFormat", 0 )) ? 2 : 1;
+#else
+    req->version = 1;
+#endif
+    req->version = 1;
     server_call( REQ_SET_REGISTRY_LEVELS );
 
     SHELL_SaveRegistryBranch(HKEY_CURRENT_USER);
     SHELL_SaveRegistryBranch(HKEY_LOCAL_MACHINE);
     SHELL_SaveRegistryBranch(HKEY_USERS);
 }

makes the whole thing save again.

Bye

Uwe Bonnes                [EMAIL PROTECTED]

Free Software: If you contribute nothing, expect nothing
--

Reply via email to