about summary refs log tree commit diff stats
path: root/src/tools/bridge.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/bridge.c')
-rw-r--r--src/tools/bridge.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/tools/bridge.c b/src/tools/bridge.c
index ea0b99e3..17496cc7 100644
--- a/src/tools/bridge.c
+++ b/src/tools/bridge.c
@@ -168,6 +168,20 @@ uintptr_t AddAutomaticBridge(bridge_t* bridge, wrapper_t w, void* fnc, int N, co
     return ret;
 }
 
+uintptr_t AddAutomaticBridgeAlt(bridge_t* bridge, wrapper_t w, void* fnc, void* alt, int N, const char* name)
+{
+    if(!fnc)
+        return 0;
+    uintptr_t ret = CheckBridged(bridge, alt);
+    if(!ret)
+        ret = AddBridge(bridge, w, alt, N, name);
+    if(!hasAlternate(fnc)) {
+        printf_log(LOG_DEBUG, "Adding AutomaticBridge for %p to %p\n", fnc, (void*)ret);
+        addAlternate(fnc, (void*)ret);
+    }
+    return ret;
+}
+
 void* GetNativeOrAlt(void* fnc, void* alt)
 {
     if(!fnc) return NULL;