[iortcw] 323/497: All: Fix return values in nested system calls from QVMs

Simon McVittie smcv at debian.org
Fri Sep 8 10:37:16 UTC 2017


This is an automated email from the git hooks/post-receive script.

smcv pushed a commit to annotated tag 1.42d
in repository iortcw.

commit c60a5f8f092eb08ca44af421372472dcedeb0670
Author: MAN-AT-ARMS <M4N4T4RMS at gmail.com>
Date:   Tue Mar 24 07:38:18 2015 -0400

    All: Fix return values in nested system calls from QVMs
---
 MP/code/qcommon/vm_x86.c | 7 ++++---
 SP/code/qcommon/vm_x86.c | 7 ++++---
 2 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/MP/code/qcommon/vm_x86.c b/MP/code/qcommon/vm_x86.c
index 77aba05..3ec42ee 100644
--- a/MP/code/qcommon/vm_x86.c
+++ b/MP/code/qcommon/vm_x86.c
@@ -412,23 +412,24 @@ static void DoSyscall(void)
 
 	if(vm_syscallNum < 0)
 	{
-		int *data;
+		int *data, *ret;
 #if idx64
 		int index;
 		intptr_t args[MAX_VMSYSCALL_ARGS];
 #endif
 		
 		data = (int *) (savedVM->dataBase + vm_programStack + 4);
+		ret = &vm_opStackBase[vm_opStackOfs + 1];
 
 #if idx64
 		args[0] = ~vm_syscallNum;
 		for(index = 1; index < ARRAY_LEN(args); index++)
 			args[index] = data[index];
 			
-		vm_opStackBase[vm_opStackOfs + 1] = savedVM->systemCall(args);
+		*ret = savedVM->systemCall(args);
 #else
 		data[0] = ~vm_syscallNum;
-		vm_opStackBase[vm_opStackOfs + 1] = savedVM->systemCall((intptr_t *) data);
+		*ret = savedVM->systemCall((intptr_t *) data);
 #endif
 	}
 	else
diff --git a/SP/code/qcommon/vm_x86.c b/SP/code/qcommon/vm_x86.c
index 77aba05..3ec42ee 100644
--- a/SP/code/qcommon/vm_x86.c
+++ b/SP/code/qcommon/vm_x86.c
@@ -412,23 +412,24 @@ static void DoSyscall(void)
 
 	if(vm_syscallNum < 0)
 	{
-		int *data;
+		int *data, *ret;
 #if idx64
 		int index;
 		intptr_t args[MAX_VMSYSCALL_ARGS];
 #endif
 		
 		data = (int *) (savedVM->dataBase + vm_programStack + 4);
+		ret = &vm_opStackBase[vm_opStackOfs + 1];
 
 #if idx64
 		args[0] = ~vm_syscallNum;
 		for(index = 1; index < ARRAY_LEN(args); index++)
 			args[index] = data[index];
 			
-		vm_opStackBase[vm_opStackOfs + 1] = savedVM->systemCall(args);
+		*ret = savedVM->systemCall(args);
 #else
 		data[0] = ~vm_syscallNum;
-		vm_opStackBase[vm_opStackOfs + 1] = savedVM->systemCall((intptr_t *) data);
+		*ret = savedVM->systemCall((intptr_t *) data);
 #endif
 	}
 	else

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/iortcw.git



More information about the Pkg-games-commits mailing list