Question about libwine_unicode functions and others in WINE

Steven Edwards steven_ed4153 at yahoo.com
Mon Dec 1 19:35:48 CST 2003


--- Jonathan Wilson <jonwil at tpgi.com.au> wrote:
> No, thats not brain damaged.
> Thats the way Microsoft does things. (at least on XP)
> HeapAlloc doesnt exist at all, all it is is a forwarder to NTDLL.
> Therefore, all the code in kernel32 should just call RtlAllocateHeap.
> Given that kernel32.dll is very much linked to ReactOS and wont run 
> anywhere else there should be no problem.

Its already implemented in Wine ntdll. It was my mistake. BTW: Do they
forward it by linker magic like we did on ReactOS or did they do it
inline like in Wine?

http://cvs.winehq.com/cvsweb/wine/dlls/kernel/heap.c?rev=1.4&content-type=text/x-cvsweb-markup

/* These are needed so that we can call the functions from inside
kernel itself */

LPVOID WINAPI HeapAlloc( HANDLE heap, DWORD flags, SIZE_T size )
{
    return RtlAllocateHeap( heap, flags, size );
}

BOOL WINAPI HeapFree( HANDLE heap, DWORD flags, LPVOID ptr )
{
    return RtlFreeHeap( heap, flags, ptr );
}

LPVOID WINAPI HeapReAlloc( HANDLE heap, DWORD flags, LPVOID ptr, SIZE_T
size )
{
    return RtlReAllocateHeap( heap, flags, ptr, size );
}

SIZE_T WINAPI HeapSize( HANDLE heap, DWORD flags, LPVOID ptr )
{
    return RtlSizeHeap( heap, flags, ptr );
}

I am just going to add this code to ReactOS in kernel32 and then its
"problem solved". Wine can still attempt to run what ever dll/program
under Win9x for testing that calls HeapAlloc and we dont have to make
changes to all of the Wine sources.

Thanks
Steven


__________________________________
Do you Yahoo!?
Free Pop-Up Blocker - Get it now
http://companion.yahoo.com/



More information about the wine-devel mailing list