diff options
| author | Pietro Cerutti <gahr@gahr.ch> | 2014-10-02 15:47:33 +0200 | 
|---|---|---|
| committer | Jan-Erik Rediger <janerik@fnordig.de> | 2015-07-27 23:17:41 +0200 | 
| commit | 4a632a6038f37b4d72c52f580d6a396c5ee3fe12 (patch) | |
| tree | c8d641e536d9e379f488d389dd50ed3a84c30d06 | |
| parent | 9069b147b0769e8f3b4b23e8ace1c96d1b257212 (diff) | |
| download | hiredict-4a632a6038f37b4d72c52f580d6a396c5ee3fe12.tar.xz | |
Make sure to disconnect the adapter in the destructor
| -rw-r--r-- | adapters/qt.h | 18 | ||||
| -rw-r--r-- | examples/example-qt.h | 2 | 
2 files changed, 14 insertions, 6 deletions
| diff --git a/adapters/qt.h b/adapters/qt.h index d216ad7..5cc02e6 100644 --- a/adapters/qt.h +++ b/adapters/qt.h @@ -1,6 +1,6 @@  /*-   * Copyright (C) 2014 Pietro Cerutti <gahr@gahr.ch> - *  + *   * Redistribution and use in source and binary forms, with or without   * modification, are permitted provided that the following conditions   * are met: @@ -9,7 +9,7 @@   * 2. Redistributions in binary form must reproduce the above copyright   *    notice, this list of conditions and the following disclaimer in the   *    documentation and/or other materials provided with the distribution. - *  + *   * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND   * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -69,12 +69,19 @@ class RedisQtAdapter : public QObject {      }      public: -        RedisQtAdapter(QObject * parent = 0)  +        RedisQtAdapter(QObject * parent = 0)              : QObject(parent), m_ctx(0), m_read(0), m_write(0) { } -        ~RedisQtAdapter() { } +        ~RedisQtAdapter() { +            if (m_ctx != 0) { +                m_ctx->ev.data = NULL; +            } +        } -        void setContext(redisAsyncContext * ac) { +        int setContext(redisAsyncContext * ac) { +            if (ac->ev.data != NULL) { +                return REDIS_ERR; +            }              m_ctx = ac;              m_ctx->ev.data = this;              m_ctx->ev.addRead = RedisQtAddRead; @@ -82,6 +89,7 @@ class RedisQtAdapter : public QObject {              m_ctx->ev.addWrite = RedisQtAddWrite;              m_ctx->ev.delWrite = RedisQtDelWrite;              m_ctx->ev.cleanup = RedisQtCleanup; +            return REDIS_OK;          }      private: diff --git a/examples/example-qt.h b/examples/example-qt.h index 1136f54..374f476 100644 --- a/examples/example-qt.h +++ b/examples/example-qt.h @@ -13,7 +13,7 @@ class ExampleQt : public QObject {      signals:          void finished(); -        +      public slots:          void run(); | 
