changeset 365:1d03a3a4220d

- fixing issue after having aliased gnu thiscalls to cdecl with a duped switch label
author Tassilo Philipp
date Tue, 14 Apr 2020 19:58:31 +0200
parents 3bdd326dc269
children ad5f9803f52f
files doc/manual/manual_dyncall_api.tex dyncall/dyncall_callvm_x86.c dynload/dynload_unix.c
diffstat 3 files changed, 3 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/doc/manual/manual_dyncall_api.tex	Tue Apr 14 19:35:30 2020 +0200
+++ b/doc/manual/manual_dyncall_api.tex	Tue Apr 14 19:58:31 2020 +0200
@@ -162,7 +162,7 @@
 \lstinline@DC_CALL_C_X86_WIN32_FAST_MS@  & C x86 Windows Microsoft fast call\\
 \lstinline@DC_CALL_C_X86_WIN32_FAST_GNU@ & C x86 Windows GCC fast call\\
 \lstinline@DC_CALL_C_X86_WIN32_THIS_MS@  & C x86 Windows Microsoft this call\\
-\lstinline@DC_CALL_C_X86_WIN32_THIS_GNU@ & C x86 Windows GCC this call (identical to CDECL w/ this-ptr as 1st arg)\\
+\lstinline@DC_CALL_C_X86_WIN32_THIS_GNU@ & alias for DC\_CALL\_C\_X86\_CDECL (GNU thiscalls identical to cdecl)\\
 \lstinline@DC_CALL_C_X86_PLAN9@          & C x86 Plan9 call\\
 \lstinline@DC_CALL_C_X64_WIN64@          & C x64 Windows standard call\\
 \lstinline@DC_CALL_C_X64_SYSV@           & C x64 System V standard call\\
--- a/dyncall/dyncall_callvm_x86.c	Tue Apr 14 19:35:30 2020 +0200
+++ b/dyncall/dyncall_callvm_x86.c	Tue Apr 14 19:58:31 2020 +0200
@@ -586,12 +586,11 @@
 #if defined(DC_PLAN9)
     case DC_CALL_C_X86_PLAN9:          vt = &gVT_x86_plan9;          break;
 #else
-    case DC_CALL_C_X86_CDECL:          vt = &gVT_x86_cdecl;          break;
+    case DC_CALL_C_X86_CDECL:          vt = &gVT_x86_cdecl;          break; // also handles DC_CALL_C_X86_WIN32_THIS_GNU
     case DC_CALL_C_X86_WIN32_STD:      vt = &gVT_x86_win32_std;      break;
     case DC_CALL_C_X86_WIN32_FAST_MS:  vt = &gVT_x86_win32_fast_ms;  break;
     case DC_CALL_C_X86_WIN32_THIS_MS:  vt = &gVT_x86_win32_this_ms;  break;
     case DC_CALL_C_X86_WIN32_FAST_GNU: vt = &gVT_x86_win32_fast_gnu; break;
-    case DC_CALL_C_X86_WIN32_THIS_GNU: vt = &gVT_x86_cdecl;          break;
     case DC_CALL_SYS_DEFAULT:
 # if defined DC_UNIX
 #   if defined DC__OS_Linux
--- a/dynload/dynload_unix.c	Tue Apr 14 19:35:30 2020 +0200
+++ b/dynload/dynload_unix.c	Tue Apr 14 19:58:31 2020 +0200
@@ -105,6 +105,7 @@
 
 #include <link.h>
 
+/* @@@ if called from within a .so, passing NULL will return .so name, whereas passing result of dlLoadLibrary(NULL) returns process' name */
 int dlGetLibraryPath(DLLib* pLib, char* sOut, int bufSize)
 {
   struct link_map* p = NULL;