[PATCH 1/2] ntdll: Add RtlAddGrowableFunctionTable stub

Alex Henrie alexhenrie24 at gmail.com
Thu Jan 25 01:13:11 CST 2018


From: Austin English <austinenglish at gmail.com>

Signed-off-by: Alex Henrie <alexhenrie24 at gmail.com>
---
Copied from https://bugs.winehq.org/show_bug.cgi?id=42255 with minor
changes. Xenia needs this function to return S_OK. However, if I
understand correctly, faking success is fine because Xenia only needs
these function tables for debug backtraces, which are not produced
during the normal operation of the program.

Fixes https://bugs.winehq.org/show_bug.cgi?id=42255

 dlls/ntdll/ntdll.spec      |  1 +
 dlls/ntdll/signal_arm.c    | 10 ++++++++++
 dlls/ntdll/signal_x86_64.c | 12 ++++++++++++
 3 files changed, 23 insertions(+)

diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
index 035fad2058..3813e43707 100644
--- a/dlls/ntdll/ntdll.spec
+++ b/dlls/ntdll/ntdll.spec
@@ -428,6 +428,7 @@
 @ stdcall RtlAddMandatoryAce(ptr long long long long ptr)
 # @ stub RtlAddRange
 @ cdecl -arch=arm,x86_64 RtlAddFunctionTable(ptr long long)
+@ cdecl -arch=arm,x86_64 RtlAddGrowableFunctionTable(ptr ptr long long long long)
 @ stdcall RtlAddRefActivationContext(ptr)
 # @ stub RtlAddRefMemoryStream
 @ stdcall RtlAddVectoredContinueHandler(long ptr)
diff --git a/dlls/ntdll/signal_arm.c b/dlls/ntdll/signal_arm.c
index d60c2a9dc2..1bd9b766d4 100644
--- a/dlls/ntdll/signal_arm.c
+++ b/dlls/ntdll/signal_arm.c
@@ -1043,6 +1043,16 @@ BOOLEAN CDECL RtlAddFunctionTable( RUNTIME_FUNCTION *table, DWORD count, DWORD a
     return TRUE;
 }
 
+/*************************************************************************
+ *              RtlAddGrowableFunctionTable   (NTDLL.@)
+ */
+DWORD WINAPI RtlAddGrowableFunctionTable( void **table, RUNTIME_FUNCTION *functions, DWORD count, DWORD max_count,
+                                          ULONG_PTR base, ULONG_PTR end )
+{
+    FIXME( "(%p, %p, %d, %d, %ld, %ld) stub!\n", table, functions, count, max_count, base, end );
+    if (table) *table = NULL;
+    return S_OK;
+}
 
 /**********************************************************************
  *              RtlDeleteFunctionTable   (NTDLL.@)
diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c
index abd3174f22..872452eb35 100644
--- a/dlls/ntdll/signal_x86_64.c
+++ b/dlls/ntdll/signal_x86_64.c
@@ -3201,6 +3201,18 @@ BOOLEAN CDECL RtlInstallFunctionTableCallback( DWORD64 table, DWORD64 base, DWOR
 }
 
 
+/*************************************************************************
+ *              RtlAddGrowableFunctionTable   (NTDLL.@)
+ */
+DWORD WINAPI RtlAddGrowableFunctionTable( void **table, RUNTIME_FUNCTION *functions, DWORD count, DWORD max_count,
+                                          ULONG_PTR base, ULONG_PTR end )
+{
+    FIXME( "(%p, %p, %d, %d, %ld, %ld) stub!\n", table, functions, count, max_count, base, end );
+    if (table) *table = NULL;
+    return S_OK;
+}
+
+
 /**********************************************************************
  *              RtlDeleteFunctionTable   (NTDLL.@)
  */
-- 
2.16.1




More information about the wine-devel mailing list