[kernel] add dummy HeapSetInformation()

dank at vroo.pair.com dank at vroo.pair.com
Mon Jul 17 09:09:01 CDT 2006


This lets Black & White demo get further;
see http://bugs.winehq.org/show_bug.cgi?id=5694
My guess is this is relatively safe; HeapSetInformation
seems to be used to tweak heap properties for
performance.

Tested by running Black & White demo only.

Changelog:
  kernel/heap.c: add dummy HeapSetInformation()

 heap.c        |   25 +++++++++++++++++++++++++
 kernel32.spec |    2 +-
 2 files changed, 26 insertions(+), 1 deletion(-)

diff --git a/dlls/kernel/heap.c b/dlls/kernel/heap.c
index dc481c4..f3ec0ae 100644
--- a/dlls/kernel/heap.c
+++ b/dlls/kernel/heap.c
@@ -249,6 +249,31 @@ BOOL WINAPI HeapUnlock(
 
 
 /***********************************************************************
+ *           HeapSetInformation   (KERNEL32.@)
+ * Change options for a given heap.
+ *
+ * NOTES
+ *	All options are ignored.
+ *
+ * RETURNS
+ *	TRUE: Success
+ *	FALSE: Failure
+ */
+BOOL WINAPI HeapSetInformation(
+              HANDLE heap, /* [in] Handle to the heap */
+              DWORD class, /* [in] enum describing which option to set */
+              LPCVOID poption, /* [in] Pointer to option value */
+              DWORD optionlen  /* [in] Length of option value */
+) {
+    /* Only option available is Low Fragmentation Heap, which
+     * is just a performance thing.  Allow but ignore; this should let
+     * Lionhead Studios' Black & White 2 run.
+     */
+    return TRUE;
+}
+
+
+/***********************************************************************
  *           GetProcessHeap    (KERNEL32.@)
  */
 HANDLE WINAPI GetProcessHeap(void)
diff --git a/dlls/kernel/kernel32.spec b/dlls/kernel/kernel32.spec
index 7369b59..d0e2cf7 100644
--- a/dlls/kernel/kernel32.spec
+++ b/dlls/kernel/kernel32.spec
@@ -696,7 +696,7 @@
 @ stub HeapQueryTagW
 @ stdcall HeapReAlloc(long long ptr long) ntdll.RtlReAllocateHeap
 @ stub HeapSetFlags
-# @ stub HeapSetInformation
+@ stdcall HeapSetInformation(long long ptr long)
 @ stdcall HeapSize(long long ptr) ntdll.RtlSizeHeap
 @ stub HeapSummary
 @ stdcall HeapUnlock(long)



More information about the wine-patches mailing list