diff options
author | Michele Calgaro <michele.calgaro@yahoo.it> | 2018-06-16 21:45:03 +0900 |
---|---|---|
committer | Michele Calgaro <michele.calgaro@yahoo.it> | 2018-06-16 21:49:26 +0900 |
commit | f63092c8af23b11d5a5470b67b40d27869b7b6ec (patch) | |
tree | c29d4567ed64d18d473487e18b88127bbe9bfc43 /tqt/kqt3.cpp | |
parent | d3e9290f76b1eaf7b7cd45fb90f81b5c820d97dc (diff) | |
download | kgtk-qt3-r14.0.5.tar.gz kgtk-qt3-r14.0.5.zip |
Fixed problem with dlsym lookup. This resolve bug 2477.r14.0.5
Partially inspired by posts at
https://stackoverflow.com/questions/15599026/how-can-i-intercept-dlsym-calls-using-ld-preload
Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
(cherry picked from commit af8244e3e02690e251d24f38abbb1e7742250758)
Diffstat (limited to 'tqt/kqt3.cpp')
-rw-r--r-- | tqt/kqt3.cpp | 32 |
1 files changed, 19 insertions, 13 deletions
diff --git a/tqt/kqt3.cpp b/tqt/kqt3.cpp index 8ceb265..97b3584 100644 --- a/tqt/kqt3.cpp +++ b/tqt/kqt3.cpp @@ -120,19 +120,25 @@ static const char * getAppName(bool useTQt=true) int TQApplication::exec() { - static bool init=false; - - if(!init) - { - connectToKDialogD(getAppName(false)); - init=true; - } - - static int (*realFunction)(void *); - - if(!realFunction) - realFunction = (int (*)(void *)) dlsym(RTLD_NEXT, KQT_QAPPLICATION_EXEC); - return (int)realFunction(this); + static bool init=false; + + if(!init) + { + connectToKDialogD(getAppName(false)); + init=true; + } + + static int (*realFunction)(void *); + + if(!realFunction) + realFunction = (int (*)(void *)) dlsym(RTLD_NEXT, KQT_QAPPLICATION_EXEC); + if (realFunction) + return (int)realFunction(this); + else + { + tqWarning("kgtk-qt3 tqt TQApplication::exec() realFunction not found!!"); + return 255; + } }; static TQString qt2KdeFilter(const TQString &f) |