Re: err:heap:HEAP_ValidateInUseArena

2002-05-17 Thread Uwe Bonnes

 John == John K Hohm [EMAIL PROTECTED] writes:

John I am implementing a COM object in comcat.dll that allocates itself
John with HeapAlloc and frees itself on its last Release with HeapFree.
John I am using it in a simple test program that creates it and
John releases it, and when the Release happens I get this:

John err:heap:HEAP_ValidateInUseArena Heap 4034: in-use arena
John 40378878 next block has PREV_FREE flag

John It seems to be saying that I'm freeing an already-free block.  I
John ran the test program with --debugmsg trace+all, and I can see that
John,

those problems are normally caused by writing more memory then allocates,
resulting in heap corruption. A good way to look after the problem is to run
with --debugmsg -relay=x11drv,+heap, as the +heap argument checks the heap
on every heap operation and the result doesn't get so cluttered as with
+all. Eventually +ole might be helpfull, as comcat used the ole chanel.

Bye
-- 
Uwe Bonnes[EMAIL PROTECTED]

Institut fuer Kernphysik  Schlossgartenstrasse 9  64289 Darmstadt
- Tel. 06151 162516  Fax. 06151 164321 --




Problem after update

2002-05-17 Thread Marcelo Welter

Hello

I make
cvs update -RdP
configure
make depend
make
./snmpapi.spec:6: Expected name, id, length or ordinal
make[2]: *** [snmpapi.spec.c] Error 1
make[2]: Leaving directory `/home/marcelo/wine/cvs/wine/dlls/snmpapi'
make[1]: *** [snmpapi/snmpapi.dll.so] Error 2
make[1]: Leaving directory `/home/marcelo/wine/cvs/wine/dlls'
make: *** [dlls] Error 2


what happen? the syntax of cvs that i use are correct...?

Thanks

Marcelo




Re: Problem after update

2002-05-17 Thread Uwe Bonnes

 Marcelo == Marcelo Welter [EMAIL PROTECTED] writes:

Marcelo Hello I make cvs update -RdP configure make depend make
Marcelo ./snmpapi.spec:6: Expected name, id, length or ordinal make[2]:
Marcelo *** [snmpapi.spec.c] Error 1 make[2]: Leaving directory
Marcelo `/home/marcelo/wine/cvs/wine/dlls/snmpapi' make[1]: ***
Marcelo [snmpapi/snmpapi.dll.so] Error 2 make[1]: Leaving directory
Marcelo `/home/marcelo/wine/cvs/wine/dlls' make: *** [dlls] Error 2


Marcelo what happen? the syntax of cvs that i use are correct...?

Try
make distclean
./configure
make depend
make

and look if the error persists.

After heavy reorganization like in the last days, some things may not fit
any more.

Bye
-- 
Uwe Bonnes[EMAIL PROTECTED]

Institut fuer Kernphysik  Schlossgartenstrasse 9  64289 Darmstadt
- Tel. 06151 162516  Fax. 06151 164321 --




Component owner for window management/painting

2002-05-17 Thread Andriy Palamarchuk

Any volunteers for handing this kind of problems?

Andriy

__
Do You Yahoo!?
LAUNCH - Your Yahoo! Music Experience
http://launch.yahoo.com




Re: Patch - check for msghdr.msg_control on Sparc-Solaris

2002-05-17 Thread Warren_Baird




 I think it would be better to do it using a technique similar to how it
 is done in scheduler/client.c on line 255:

Makes sense to me - it wasn't obvious that msg_control and msg_accrights are
always mutually exclusive, which is why I added a separate test...  But if we're
sure they are always mutally exclusive, this approach makes more sense...

Warren






Re: Problem after update

2002-05-17 Thread Sylvain Petreolle

 --- Marcelo Welter [EMAIL PROTECTED] a écrit : 
Hello
 
 I make
 cvs update -RdP
 configure
 make depend
 make
What are the changes if I run 'cvs -RdP' instead of
'cvs -AdP' ? I had a look at CVS manual but I'm not
sure
what is meant of.

___
Do You Yahoo!? -- Une adresse @yahoo.fr gratuite et en français !
Yahoo! Mail : http://fr.mail.yahoo.com




Re: Fix for focus loops

2002-05-17 Thread Jukka Heinonen

On Sun, May 12, Alexandre Julliard wrote:
 Actually all the problems you list apply only to unmanaged
 mode. Fixing that mode to be ICCCM compliant is fairly low priority,
 and probably quite hopeless. In fact the whole concept of unmanaged
 mode is flawed, and it will probably be replaced by a
 managed-with-no-decorations mode (with a few exceptions for menus
 etc.) once we have the proper support for doing actions like
 min/maximize through the window manager.

I'm sorry to sound disrespectful, but I believe that many of those 
problems I have listed do apply to managed mode, at least if 
decorations are drawn by Wine. Think about the following scenario:

- User has set window manager into mode where focus is not
  automatically given to new windows (can be done at least with
  WindowMaker).
- User starts Wine program from xterm command line.
- New Wine window is opened, Wine activates window, calls
  X11DRV_SetFocus and draws active caption bar.
  However, this is wrong since window manager has kept focus 
  on xterm window and Wine should have drawn passive caption bar.

You are partially correct in the fact that this kind of problems
are unlikely to cause serious problems in managed mode. However, 
they still are bugs, potentially quite visible bugs, too, depending
on what (ICCCM compliant) window manager is being used and how 
that window manager has been configured.

-- 
Jukka Heinonen http://www.iki.fi/jhei/




Re: Fix for focus loops

2002-05-17 Thread Alexandre Julliard

Jukka Heinonen [EMAIL PROTECTED] writes:

 I'm sorry to sound disrespectful, but I believe that many of those 
 problems I have listed do apply to managed mode, at least if 
 decorations are drawn by Wine.

But Wine doesn't draw the decorations in managed mode. It may do it
once we do the managed-with-no-decorations mode I mentioned, but there
are much larger problems with that to be solved first.

-- 
Alexandre Julliard
[EMAIL PROTECTED]




Problem in scheduler/process.c

2002-05-17 Thread Dustin Navea

ok, so I have found the cause of the problem in
scheduler/process.c that is making ut-based installers
not work.

the problem is the code from line 450 to line 461
inclusive.

in all programs, PROCESS_InitWine is called from int
main in miscemu/main.c, then open_winelib_app is
called from PROCESS_InitWine (always) where things go
wrong...

in a normal program, 1 of 2 things (im not sure which
though) happens...

1) line 451 evaluates to false so that section is
skipped and then line 461 is also evaluated to false,
so it is also skipped, so open_winelib_app returns
either null or   (not sure of the difference)

-or-

2) line 451 evaluates to true, and then 457 also
evaluates to true, so open_winelib_app returns NULL.

with the ut-based installer that is the case, but the
Setup.exe that is on the root of the cd acts
differently...

1) 451 evaluates to false and then 461 evaluates to
true, causing wine to attempt to load the real
installer (called by the one in the root of the cd) as
a .so, which doesn't work.

-or-

2) 451 evaluates to true and 457 evaluates to false,
so it goes on to 461, which evaluates to true...

with winelib apps the same thing happens as with the
root-of-cd installer except that the .so file does
exist and so it gets loaded...

so, i think what needs to be done is a check in
PROCESS_InitWine for the kind of binary (windows or
winelib).  and if it is a winelib binary, then run
call open_winelib_app, otherwise proceed with normal
loading...

probably the easiest way to do this would be like this

line 491-494

if (argv[0] != 'wine')
{
if (open_winelib_app( app_argv )) goto found;
}

that way you could probably completely remove lines
450-459 which are in open_winelib_app, since all it
does is check to make sure argv[0] doesn't equal
wine...

i would try this method out and submit it, but i won't
be back at home until tonight, so i can't make any
diff's.  if someone wants to give it a go and let us
know if it works, please give me credit for the
_idea_.

hopefully this solves some other problems too...

comments appreciated.

-Dustin

__
Do You Yahoo!?
LAUNCH - Your Yahoo! Music Experience
http://launch.yahoo.com




Mingw devel stuff Part2

2002-05-17 Thread Steven Edwards

Sorry about that I hit the send button to soon.

OK when I try build shlwapi.dll I'm getting this

Administrator@LAPTOP /cygdrive/d/src/winehq/wine/dlls/shlwapi
$ make
dllwrap --add-stdcall-alias --def shlwapi.spec.def --implib shlwapi.a -o
shlwapi
.dll ordinal.o path.o reg.o regstream.o shlwapi_main.o string.o url.o
shlwa
pi.dll.dbg.o -L../../dlls -luser32 -lgdi32 -ladvapi32 -lkernel32
-L../../library
 -lwine -L../../ole -lwine_uuid -L../../unicode -lwine_unicode -lm
Warning: resolving ___wine_dbgstr_guid by linking to
__impwine_dbgstr_guid (
auto-import)
Warning: resolving ___wine_dbgstr_an by linking to
__impwine_dbgstr_an (auto
-import)
Warning: resolving ___wine_dbgstr_wn by linking to
__impwine_dbgstr_wn (auto
-import)
ordinal.o(.text+0x52d6):ordinal.c: undefined reference to `wctype_table'
ordinal.o(.text+0x52eb):ordinal.c: undefined reference to `wctype_table'
path.o(.text+0x74d6):path.c: undefined reference to `casemap_lower'
path.o(.text+0x74eb):path.c: undefined reference to `casemap_lower'
path.o(.text+0x751a):path.c: undefined reference to `casemap_upper'
path.o(.text+0x752f):path.c: undefined reference to `casemap_upper'
path.o(.text+0x7752):path.c: undefined reference to `wctype_table'
path.o(.text+0x7767):path.c: undefined reference to `wctype_table'
string.o(.text+0x1d2d):string.c: undefined reference to `wvsnprintfA@16'
string.o(.text+0x1d61):string.c: undefined reference to `wvsnprintfW@16'
string.o(.text+0x1d8e):string.c: undefined reference to `casemap_upper'
string.o(.text+0x1da3):string.c: undefined reference to `casemap_upper'
url.o(.text+0x4426):url.c: undefined reference to `wctype_table'
url.o(.text+0x443b):url.c: undefined reference to `wctype_table'
fu01.o(.idata$3+0xc): undefined reference to `libwine_a_iname'
fu02.o(.idata$3+0xc): undefined reference to `libwine_a_iname'
fu04.o(.idata$3+0xc): undefined reference to `libwine_a_iname'
fu05.o(.idata$3+0xc): undefined reference to `libwine_a_iname'
fu06.o(.idata$3+0xc): undefined reference to `libwine_a_iname'
fu07.o(.idata$3+0xc): more undefined references to `libwine_a_iname'
follow
nmth00.o(.idata$4+0x0): undefined reference to
`_nmwine_dbgstr_guid'
nmth03.o(.idata$4+0x0): undefined reference to
`_nmwine_dbgstr_an'
nmth09.o(.idata$4+0x0): undefined reference to
`_nmwine_dbgstr_wn'
collect2: ld returned 1 exit status
dllwrap: gcc exited with status 1
make: *** [shlwapi.dll] Error 1

Every revolution was once a thought in one man's mind
- Ralph Waldo Emerson 





Mingw Port Information and Questions

2002-05-17 Thread Steven Edwards

OK so we the latest changes I do need to build libwine.dll right? I can
if I link it to msvcrt.a but ig I don't I get the following

Administrator@LAPTOP /cygdrive/d/src/winehq/wine/library
$ make
dllwrap --add-stdcall-alias --export-all --implib libwine.a -o
libwine.dll debug
.o errno.o ldt.o loader.o port.o
dllwrap: no export definition file provided
dllwrap: creating one, but that may not be what you want
debug.o(.text+0x8d4):debug.c: undefined reference to `_imp___iob'
loader.o(.text+0x4c4):loader.c: undefined reference to `_assert'
loader.o(.text+0x614):loader.c: undefined reference to `_assert'
port.o(.text+0x4):port.c: undefined reference to `_errno'
port.o(.text+0x30):port.c: undefined reference to `_errno'
port.o(.text+0x48):port.c: undefined reference to `_errno'
port.o(.text+0x60):port.c: undefined reference to `_errno'
port.o(.text+0x78):port.c: undefined reference to `_errno'
port.o(.text+0x90):port.c: more undefined references to `_errno' follow
collect2: ld returned 1 exit status
dllwrap: gcc exited with status 1
make: *** [libwine.dll] Error 1

Also when I try to build shlwapi.dll I get this






Re: Mingw devel stuff Part2

2002-05-17 Thread Alexandre Julliard

Steven Edwards [EMAIL PROTECTED] writes:

 Sorry about that I hit the send button to soon.
 
 OK when I try build shlwapi.dll I'm getting this

Does it work better with this patch?

Index: include/wine/debug.h
===
RCS file: /opt/cvs-commit/wine/include/wine/debug.h,v
retrieving revision 1.3
diff -u -r1.3 debug.h
--- include/wine/debug.h17 May 2002 02:55:48 -  1.3
+++ include/wine/debug.h17 May 2002 18:50:54 -
@@ -87,13 +87,6 @@
 
 #endif  /* __GNUC__ */
 
-extern const char * (*__wine_dbgstr_an)( const char * s, int n );
-extern const char * (*__wine_dbgstr_wn)( const WCHAR *s, int n );
-extern const char * (*__wine_dbgstr_guid)( const struct _GUID *id );
-extern int (*__wine_dbg_vprintf)( const char *format, va_list args );
-extern int (*__wine_dbg_vlog)( int cls, const char *channel,
-   const char *function, const char *format, va_list args 
);
-
 
 /*
  * Exported definitions and macros
@@ -102,11 +95,11 @@
 /* These function return a printable version of a string, including
quotes.  The string will be valid for some time, but not indefinitely
as strings are re-used.  */
-inline static const char *wine_dbgstr_guid( const struct _GUID *id ) { return 
__wine_dbgstr_guid(id); }
-inline static const char *wine_dbgstr_an( const char * s, int n ) { return 
__wine_dbgstr_an(s, n); }
-inline static const char *wine_dbgstr_wn( const WCHAR *s, int n ) { return 
__wine_dbgstr_wn(s, n); }
-inline static const char *wine_dbgstr_a( const char *s )  { return __wine_dbgstr_an( 
s, -1 ); }
-inline static const char *wine_dbgstr_w( const WCHAR *s ) { return __wine_dbgstr_wn( 
s, -1 ); }
+extern const char *wine_dbgstr_guid( const struct _GUID *id );
+extern const char *wine_dbgstr_an( const char * s, int n );
+extern const char *wine_dbgstr_wn( const WCHAR *s, int n );
+extern const char *wine_dbgstr_a( const char *s );
+extern const char *wine_dbgstr_w( const WCHAR *s );
 
 extern int wine_dbg_printf( const char *format, ... ) __WINE_PRINTF_ATTR(1,2);
 extern int wine_dbg_log( int cls, const char *ch, const char *func,
@@ -140,11 +133,11 @@
 #ifdef __WINE__
 /* Wine uses shorter names that are very likely to conflict with other software */
 
-inline static const char *debugstr_an( const char * s, int n ) { return 
__wine_dbgstr_an( s, n ); }
-inline static const char *debugstr_wn( const WCHAR *s, int n ) { return 
__wine_dbgstr_wn( s, n ); }
-inline static const char *debugstr_guid( const struct _GUID *id ) { return 
__wine_dbgstr_guid(id); }
-inline static const char *debugstr_a( const char *s )  { return __wine_dbgstr_an( s, 
-1 ); }
-inline static const char *debugstr_w( const WCHAR *s ) { return __wine_dbgstr_wn( s, 
-1 ); }
+inline static const char *debugstr_an( const char * s, int n ) { return 
+wine_dbgstr_an( s, n ); }
+inline static const char *debugstr_wn( const WCHAR *s, int n ) { return 
+wine_dbgstr_wn( s, n ); }
+inline static const char *debugstr_guid( const struct _GUID *id ) { return 
+wine_dbgstr_guid(id); }
+inline static const char *debugstr_a( const char *s )  { return wine_dbgstr_an( s, -1 
+); }
+inline static const char *debugstr_w( const WCHAR *s ) { return wine_dbgstr_wn( s, -1 
+); }
 
 #define TRACE  WINE_TRACE
 #define TRACE_(ch) WINE_TRACE_(ch)
Index: include/wine/library.h
===
RCS file: /opt/cvs-commit/wine/include/wine/library.h,v
retrieving revision 1.11
diff -u -r1.11 library.h
--- include/wine/library.h  16 May 2002 23:16:01 -  1.11
+++ include/wine/library.h  17 May 2002 18:50:54 -
@@ -43,6 +43,13 @@
 
 /* debugging */
 
+extern const char * (*__wine_dbgstr_an)( const char * s, int n );
+extern const char * (*__wine_dbgstr_wn)( const WCHAR *s, int n );
+extern const char * (*__wine_dbgstr_guid)( const struct _GUID *id );
+extern int (*__wine_dbg_vprintf)( const char *format, va_list args );
+extern int (*__wine_dbg_vlog)( int cls, const char *channel,
+   const char *function, const char *format, va_list args 
+);
+
 extern void wine_dbg_add_option( const char *name, unsigned char set, unsigned char 
clear );
 
 /* portability */
Index: library/debug.c
===
RCS file: /opt/cvs-commit/wine/library/debug.c,v
retrieving revision 1.6
diff -u -r1.6 debug.c
--- library/debug.c 17 May 2002 04:17:48 -  1.6
+++ library/debug.c 17 May 2002 18:50:55 -
@@ -337,3 +337,30 @@
 int (*__wine_dbg_vprintf)( const char *format, va_list args ) = default_dbg_vprintf;
 int (*__wine_dbg_vlog)( int cls, const char *channel, const char *function,
 const char *format, va_list args ) = default_dbg_vlog;
+
+/* wrappers to use the function pointers */
+
+const char *wine_dbgstr_guid( const struct _GUID *id )
+{
+return 

Bugzilla bug 297: implement PeekNamedPipe.

2002-05-17 Thread David Jolley

* Andriy Palamarchuk ([EMAIL PROTECTED]) wrote:
 
 If anybody starts to work on the bug, please take this
 bug and keep it updated.
 

Hi all,

Newbie developer alert!

I've been meaning to do something with this bug for a while now, as it
seriously cripples my killer-app that's keeping me running Windows.

Basically, I've had a look through the sources, and found out what
I've got to do with the dll/server communication (I think!).  I've
fleshed out the PeekNamedPipe API Handler call (peek_named_pipe() in
dlls/kernel/sync.c) to do a SERVER_REQUEST, and put in what I think
needs putting in the server to handle said request
(server/protocol.def has been modified with the requisite structure).

Now, the problem I have is that the peek_named_pipe function that gets
called inside the server (declared with a DECL_HANDLER) seems from the
name (and it's associated function group too) that it's implementation
should be in the file server/named_pipe.c, but it seems to me that
this handler is more like a file read operation, and the other
handlers in server/named_pipe.c are more to do with the housekeeping  
of a pipe.

My question is, then, should the server's implementation of
peek_named_pipe go in named_pipe.c, or somewhere else (where?).

Also, PeekNamedPipe has two types of call - one where the call is
returning the data ahead of a read, and one where it just returns the
amount of bytes waiting.  My program only uses one of these types; the
return amount of data waiting type, and so I have no way of knowing
if I've implemented the returns data type of call correctly.  This
means there's still a FIXME in one branch - does this make any patch
I'd submit unnacceptable?

Cheers,

Dave.




Weird parameters with LVM_GETSUBITEMRECT

2002-05-17 Thread Paul Rupe

A recent change to dlls/comctl32/listview.c implemented GetSubItemRect,
but this causes Xnews to hang when selecting a newsgroup from the list.
I don't think the change itself is at fault, but it may have uncovered a
bug elsewhere.  The app gets a message LVM_GETSUBITEMRECT (4152) with
the following parameters:
   wParam: 1078422692 (0x40476ca4)
   lParam: 1078422612 (0x40476c54)
wParam should be a small integer (an index into the listview items) and
lParam is a pointer to a RECT:
   *(LPRECT)lParam: {left = 2, top = 1079544291,
 right = 28246089, bottom = 1079843718}
or  {left = 0x2, top = 0x405889e3,
 right = 0x1af0049, bottom = 0x405d1b86}
lParam-left is reasonable, but lParam-top should be a small index.
Note that wParam, lParam, and lParam-top are fairly close numerically.
The function LISTVIEW_GetSubItemRect then tries to loop from 0 to that
huge number, causing the hang.  I put a sanity check inside that
function to stop it from going past GETITEMCOUNT and that works, but I
want to see if I can fix it the right way.


-- 
Paul RupeShe smiled, in the 
end.
p r u p e  m y r e a l b o x . c o m

| Oppose government police-ware on your PC!
| Stop the Consumer Broadband and Digital Television Promotion Act!
| http://www.eff.org/alerts/20020322_eff_cbdtpa_alert.html
--





RE: Mingw devel stuff Part2

2002-05-17 Thread Steven Edwards

 Does it work better with this patch?

I'm having touble applying the patch, should it just be the standard
Patch -p0../patch.diff

This is what happens on every part
patching file `include/wine/debug.h'
patch:  malformed patch at line 17:  -102,11 +95,11 

Thanks
Steven

Every revolution was once a thought in one man's mind
- Ralph Waldo Emerson 





nasty NTDLL_vsnwprintf bug?!?

2002-05-17 Thread John K. Hohm

My heap corruption problem turned out to be a bug in swprintf (well,
really in NTDLL_vsnwprintf), I think.  I tried formatting like this:

WCHAR keyname[21] = { 'C', 'o', 'm', 'p', 'o', 'n', 'e', 'n',
  't', ' ', 'C', 'a', 't', 'e', 'g', 'o',
  'r', 'i', 'e', 's', 0 };
WCHAR fmt[4] = { '%', 'l', 'X', 0 };
swprintf(This-xlcid, fmt, lcid);

My poor little WCHAR xlcid[9] member of This was seriously overflowed by
the string L409Component Categories.  The following patch fixes what
appears to be a format reading bug in NTDLL_vsnwprintf.  I didn't just
send it to wine-patches because it's not my area and it seems unlikely
such a bad bug could hang around in such a function.  Then again, I don't
see many uses of swprintf in the source; should I be using something
better for sprintf's of WCHAR's?

--- dlls/ntdll/wcstring.c.~1.15.~   Thu May 16 19:59:27 2002
+++ dlls/ntdll/wcstring.c   Fri May 17 23:09:21 2002
 -451,10 +451,7 
   }
   if (*iter == (WCHAR)L'h' ||
   *iter == (WCHAR)L'l')
-  {
   *fmta++ = *iter++;
-  *fmta++ = *iter++;
-  }

   switch (*iter)
   {