summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHaru <haru@dotalux.com>2020-01-13 00:33:36 +0100
committerGitHub <noreply@github.com>2020-01-13 00:33:36 +0100
commitfe7af0adf1e06bad5da72ddfb125aa8a7799f770 (patch)
treed0cf45c295a8bd72bc959af214e35a0dbf589583
parent776befcb4eedded935451078f00ae9ed50e8bd3e (diff)
parent9736ec9e8469c4faaf6fa4df0e56b5a4ab424999 (diff)
downloadhercules-fe7af0adf1e06bad5da72ddfb125aa8a7799f770.tar.gz
hercules-fe7af0adf1e06bad5da72ddfb125aa8a7799f770.tar.bz2
hercules-fe7af0adf1e06bad5da72ddfb125aa8a7799f770.tar.xz
hercules-fe7af0adf1e06bad5da72ddfb125aa8a7799f770.zip
Merge pull request #2608 from 4144/fixhpm
Fix redefine HPM structs in multy file plugins
-rw-r--r--src/common/HPMi.h6
-rw-r--r--src/plugins/HPMHooking.h4
2 files changed, 10 insertions, 0 deletions
diff --git a/src/common/HPMi.h b/src/common/HPMi.h
index 7698d3ca7..3d39f06d4 100644
--- a/src/common/HPMi.h
+++ b/src/common/HPMi.h
@@ -241,9 +241,15 @@ struct HPMi_interface {
#ifdef HERCULES_CORE
#define HPM_SYMBOL(n, s) (HPM->share((s), (n)), true)
#else // ! HERCULES_CORE
+#ifdef HERCULES_CORE_HPMI_SKIP
+extern struct HPMi_interface HPMi_s;
+extern struct HPMi_interface *HPMi;
+extern void *(*import_symbol) (char *name, unsigned int pID);
+#else
HPExport struct HPMi_interface HPMi_s;
HPExport struct HPMi_interface *HPMi;
HPExport void *(*import_symbol) (char *name, unsigned int pID);
+#endif
#define HPM_SYMBOL(n, s) ((s) = import_symbol((n),HPMi->pid))
#endif // !HERCULES_CORE
diff --git a/src/plugins/HPMHooking.h b/src/plugins/HPMHooking.h
index f94dccac4..39d63a50b 100644
--- a/src/plugins/HPMHooking.h
+++ b/src/plugins/HPMHooking.h
@@ -41,7 +41,11 @@ struct HPMHooking_core_interface {
const char *(*Hooked)(bool *fr);
};
#else // ! HERCULES_CORE
+#ifdef HERCULES_CORE_HPMI_SKIP
+extern struct HPMHooking_interface HPMHooking_s;
+#else
HPExport struct HPMHooking_interface HPMHooking_s;
+#endif
#include "HPMHooking/HPMHooking.Defs.inc"