diff options
author | Sergey Belyashov <Sergey.Belyashov@gmail.com> | 2014-09-26 16:00:39 +0400 |
---|---|---|
committer | Sergey Belyashov <Sergey.Belyashov@gmail.com> | 2014-10-01 14:21:00 +0200 |
commit | dfdebc849400be43396b6600ac4c910e36869989 (patch) | |
tree | a0a1c99a2032be82c6041d82b56ac65b1ca7fa2c | |
parent | 2787010bbbc6d7350b49c879568da4b23e06d0bd (diff) | |
download | qtserialport-dfdebc849400be43396b6600ac4c910e36869989.tar.gz |
Fix segfault related to dynamic udev loading
Problem was caused by conflict of libudev symbols and function pointers
declared in qtudev_p.h.
Task-number: QTBUG-40113
Change-Id: I599575e8a1b9ffe32295331d46d991422975f773
Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
-rw-r--r-- | src/serialport/qserialportinfo_unix.cpp | 7 | ||||
-rw-r--r-- | src/serialport/qtudev_p.h | 2 |
2 files changed, 2 insertions, 7 deletions
diff --git a/src/serialport/qserialportinfo_unix.cpp b/src/serialport/qserialportinfo_unix.cpp index 9ff4431..0405a41 100644 --- a/src/serialport/qserialportinfo_unix.cpp +++ b/src/serialport/qserialportinfo_unix.cpp @@ -360,12 +360,7 @@ QList<QSerialPortInfo> availablePortsByUdev() QList<QSerialPortInfo> QSerialPortInfo::availablePorts() { - QList<QSerialPortInfo> serialPortInfoList; - // TODO: Remove this condition once the udev runtime symbol resolution crash - // is fixed for Qt 4. -#if defined(LINK_LIBUDEV) || (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) - serialPortInfoList = availablePortsByUdev(); -#endif + QList<QSerialPortInfo> serialPortInfoList = availablePortsByUdev(); #ifdef Q_OS_LINUX if (serialPortInfoList.isEmpty()) diff --git a/src/serialport/qtudev_p.h b/src/serialport/qtudev_p.h index 09940ab..bd9e74d 100644 --- a/src/serialport/qtudev_p.h +++ b/src/serialport/qtudev_p.h @@ -65,7 +65,7 @@ extern "C" #define GENERATE_SYMBOL_VARIABLE(returnType, symbolName, ...) \ typedef returnType (*fp_##symbolName)(__VA_ARGS__); \ - fp_##symbolName symbolName; + static fp_##symbolName symbolName; #define RESOLVE_SYMBOL(symbolName) \ symbolName = (fp_##symbolName)resolveSymbol(udevLibrary, #symbolName); \ |