diff options
Diffstat (limited to 'src/plugins/platforms')
-rw-r--r-- | src/plugins/platforms/xcb/qxcbconnection.cpp | 6 | ||||
-rw-r--r-- | src/plugins/platforms/xcb/qxcbconnection.h | 9 |
2 files changed, 9 insertions, 6 deletions
diff --git a/src/plugins/platforms/xcb/qxcbconnection.cpp b/src/plugins/platforms/xcb/qxcbconnection.cpp index 6969124b2a..0c51cc9255 100644 --- a/src/plugins/platforms/xcb/qxcbconnection.cpp +++ b/src/plugins/platforms/xcb/qxcbconnection.cpp @@ -615,7 +615,7 @@ void QXcbEventReader::addEvent(xcb_generic_event_t *event) m_events << event; } -QList<xcb_generic_event_t *> *QXcbEventReader::lock() +QXcbEventArray *QXcbEventReader::lock() { m_mutex.lock(); #ifndef XCB_POLL_FOR_QUEUED_EVENT @@ -648,7 +648,7 @@ void QXcbConnection::sendConnectionEvent(QXcbAtom::Atom a, uint id) void QXcbConnection::processXcbEvents() { - QList<xcb_generic_event_t *> *eventqueue = m_reader->lock(); + QXcbEventArray *eventqueue = m_reader->lock(); for(int i = 0; i < eventqueue->size(); ++i) { xcb_generic_event_t *event = eventqueue->at(i); @@ -711,7 +711,7 @@ void QXcbConnection::handleClientMessageEvent(const xcb_client_message_event_t * xcb_generic_event_t *QXcbConnection::checkEvent(int type) { - QList<xcb_generic_event_t *> *eventqueue = m_reader->lock(); + QXcbEventArray *eventqueue = m_reader->lock(); for (int i = 0; i < eventqueue->size(); ++i) { xcb_generic_event_t *event = eventqueue->at(i); diff --git a/src/plugins/platforms/xcb/qxcbconnection.h b/src/plugins/platforms/xcb/qxcbconnection.h index ebe95c0013..878d41ad89 100644 --- a/src/plugins/platforms/xcb/qxcbconnection.h +++ b/src/plugins/platforms/xcb/qxcbconnection.h @@ -50,6 +50,7 @@ #include <QObject> #include <QThread> #include <QVector> +#include <QVarLengthArray> #ifdef XCB_USE_XINPUT2_MAEMO struct XInput2Data; @@ -249,6 +250,8 @@ namespace QXcbAtom { }; } +typedef QVarLengthArray<xcb_generic_event_t *, 64> QXcbEventArray; + class QXcbConnection; class QXcbEventReader : public QThread { @@ -263,7 +266,7 @@ public: void run(); #endif - QList<xcb_generic_event_t *> *lock(); + QXcbEventArray *lock(); void unlock(); signals: @@ -273,7 +276,7 @@ private: void addEvent(xcb_generic_event_t *event); QMutex m_mutex; - QList<xcb_generic_event_t *> m_events; + QXcbEventArray m_events; QXcbConnection *m_connection; }; @@ -427,7 +430,7 @@ private: template<typename T> xcb_generic_event_t *QXcbConnection::checkEvent(const T &checker) { - QList<xcb_generic_event_t *> *eventqueue = m_reader->lock(); + QXcbEventArray *eventqueue = m_reader->lock(); for (int i = 0; i < eventqueue->size(); ++i) { xcb_generic_event_t *event = eventqueue->at(i); |