<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Dec 25, 2008, at 2:18 AM, Javed Rabbani wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">Oliver,<br><br><span style="color: rgb(51, 102, 255);">&lt;"That call to VirtualAlloc is inside a PLATFORM(WIN_OS) guard -- you should not be hitting it on a non-windows platform"></span><br><br>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".&nbsp; </blockquote><div><br></div><div>It's perfectly possible it's broken in symbian -- the last symbian release was from more than two years ago.</div><div><br></div><div>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. &nbsp;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.</div><div><br></div><blockquote type="cite">What are specific memory requirements that VirtualAlloc() fulfills and fastMalloc() does not? What can be the workaround for VirtualAlloc() on embedded platforms? </blockquote><div><br></div><div>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 :-/ )</div><div><br></div><blockquote type="cite">I hope my point of concern is clearely stated now.</blockquote><div><br></div><div>I'm still not sure what your problem is -- posix systems should provide mmap or posix_memalign either of which will achieve correct behaviour</div><div><br></div><div>--Oliver</div></div><br></body></html>