On Dec 25, 2008, at 2:18 AM, Javed Rabbani wrote:
Oliver,
<"That call to VirtualAlloc is inside a PLATFORM(WIN_OS) guard --
you should not be hitting it on a non-windows platform">
You are absolutely right about that. The VirtualAlloc() should never
be hit on non-Windows platform. Let me clarify, I am not hitting the
VirtualAlloc call on a non-Windows platform. I was just referring to
the point that what can be a possible alternative to VirtualAlloc on
embedded platforms. Looking through the code, the VirtualAlloc is
enabled for WIN_OS only as expected. For other platforms like
SYMBIAN for example, the fastMalloc() is enabled with a comment that
"VirtualAlloc is not available on Symbian, so hack with fastMalloc".
It's perfectly possible it's broken in symbian -- the last symbian
release was from more than two years ago.
A bit of digging showed that Simon Hausmann added the SYMBIAN
fastMalloc branch, which implies this was for WebKit/Qt which builds
with fastMalloc disabled. So that call to fastMalloc is actually just
a call to standard system malloc, which i would guess, just by pure
luck allocates adequately aligned memory.
What are specific memory requirements that VirtualAlloc() fulfills
and fastMalloc() does not? What can be the workaround for
VirtualAlloc() on embedded platforms?
Alignment -- VirtualAlloc, mmap, vm_map all produce page aligned
memory (which is at least 4k aligned), and the posix_memalign version
appears to actually over align memory (my following of the code makes
me thinks it's requesting 64k alignment :-/ )
I hope my point of concern is clearely stated now.
I'm still not sure what your problem is -- posix systems should
provide mmap or posix_memalign either of which will achieve correct
behaviour
--Oliver
_______________________________________________
webkit-dev mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev