- Add stubs for all page heap API functions.
authorAleksey Bragin <aleksey@reactos.org>
Thu, 10 Feb 2011 18:21:53 +0000 (18:21 +0000)
committerAleksey Bragin <aleksey@reactos.org>
Thu, 10 Feb 2011 18:21:53 +0000 (18:21 +0000)
- Enable call to RtlpPageHeapDestroy() when necessary.
- Reset Parameters==-1 hack after unsuccessful call to RtlpPageHeapCreate(), would be necessary when page heap is implemented..

svn path=/trunk/; revision=50654

reactos/lib/rtl/heap.c
reactos/lib/rtl/heap.h
reactos/lib/rtl/heappage.c

index 9a563ee..bb81fc3 100644 (file)
@@ -1364,6 +1364,10 @@ RtlCreateHeap(ULONG Flags,
 
         //ASSERT(FALSE);
         DPRINT1("Enabling page heap failed\n");
+
+        /* Reset a special Parameters == -1 hack */
+        if ((ULONG_PTR)Parameters == (ULONG_PTR)-1)
+            Parameters = NULL;
     }
 
     /* Check validation flags */
@@ -1716,6 +1720,9 @@ RtlDestroyHeap(HANDLE HeapPtr) /* [in] Handle of heap */
 
     if (!HeapPtr) return NULL;
 
+    /* Call page heap routine if required */
+    if (Heap->ForceFlags & HEAP_FLAG_PAGE_ALLOCS) return RtlpPageHeapDestroy(HeapPtr);
+
     /* Call special heap */
     if (RtlpHeapIsSpecial(Heap->Flags))
     {
index 8291838..4ea5f09 100644 (file)
@@ -385,6 +385,8 @@ RtlDebugSizeHeap(HANDLE HeapPtr,
                  ULONG Flags,
                  PVOID Ptr);
 
+/* heappage.c */
+
 HANDLE NTAPI
 RtlpPageHeapCreate(ULONG Flags,
                    PVOID Addr,
@@ -393,4 +395,49 @@ RtlpPageHeapCreate(ULONG Flags,
                    PVOID Lock,
                    PRTL_HEAP_PARAMETERS Parameters);
 
+PVOID NTAPI
+RtlpPageHeapDestroy(HANDLE HeapPtr);
+
+PVOID NTAPI
+RtlpPageHeapAllocate(IN PVOID HeapPtr,
+                     IN ULONG Flags,
+                     IN SIZE_T Size);
+
+BOOLEAN NTAPI
+RtlpPageHeapFree(HANDLE HeapPtr,
+                 ULONG Flags,
+                 PVOID Ptr);
+
+PVOID NTAPI
+RtlpPageHeapReAllocate(HANDLE HeapPtr,
+                       ULONG Flags,
+                       PVOID Ptr,
+                       SIZE_T Size);
+
+BOOLEAN NTAPI
+RtlpPageHeapGetUserInfo(PVOID HeapHandle,
+                        ULONG Flags,
+                        PVOID BaseAddress,
+                        PVOID *UserValue,
+                        PULONG UserFlags);
+
+BOOLEAN NTAPI
+RtlpPageHeapSetUserValue(PVOID HeapHandle,
+                         ULONG Flags,
+                         PVOID BaseAddress,
+                         PVOID UserValue);
+
+BOOLEAN
+NTAPI
+RtlpPageHeapSetUserFlags(PVOID HeapHandle,
+                         ULONG Flags,
+                         PVOID BaseAddress,
+                         ULONG UserFlagsReset,
+                         ULONG UserFlagsSet);
+
+SIZE_T NTAPI
+RtlpPageHeapSize(HANDLE HeapPtr,
+                 ULONG Flags,
+                 PVOID Ptr);
+
 #endif
index b421362..a953d4c 100644 (file)
@@ -36,4 +36,73 @@ RtlpPageHeapCreate(ULONG Flags,
     return NULL;
 }
 
+PVOID NTAPI
+RtlpPageHeapDestroy(HANDLE HeapPtr)
+{
+    return FALSE;
+}
+
+PVOID NTAPI
+RtlpPageHeapAllocate(IN PVOID HeapPtr,
+                     IN ULONG Flags,
+                     IN SIZE_T Size)
+{
+    return NULL;
+}
+
+BOOLEAN NTAPI
+RtlpPageHeapFree(HANDLE HeapPtr,
+                 ULONG Flags,
+                 PVOID Ptr)
+{
+    return FALSE;
+}
+
+PVOID NTAPI
+RtlpPageHeapReAllocate(HANDLE HeapPtr,
+                       ULONG Flags,
+                       PVOID Ptr,
+                       SIZE_T Size)
+{
+    return NULL;
+}
+
+BOOLEAN NTAPI
+RtlpPageHeapGetUserInfo(PVOID HeapHandle,
+                        ULONG Flags,
+                        PVOID BaseAddress,
+                        PVOID *UserValue,
+                        PULONG UserFlags)
+{
+    return FALSE;
+}
+
+BOOLEAN NTAPI
+RtlpPageHeapSetUserValue(PVOID HeapHandle,
+                         ULONG Flags,
+                         PVOID BaseAddress,
+                         PVOID UserValue)
+{
+    return FALSE;
+}
+
+BOOLEAN
+NTAPI
+RtlpPageHeapSetUserFlags(PVOID HeapHandle,
+                         ULONG Flags,
+                         PVOID BaseAddress,
+                         ULONG UserFlagsReset,
+                         ULONG UserFlagsSet)
+{
+    return FALSE;
+}
+
+SIZE_T NTAPI
+RtlpPageHeapSize(HANDLE HeapPtr,
+                 ULONG Flags,
+                 PVOID Ptr)
+{
+    return 0;
+}
+
 /* EOF */