fixed server crash
authorVictor Kirhenshtein <victor@netxms.org>
Mon, 25 Apr 2016 09:45:08 +0000 (12:45 +0300)
committerVictor Kirhenshtein <victor@netxms.org>
Mon, 25 Apr 2016 09:45:08 +0000 (12:45 +0300)
include/nms_util.h

index a65ce07..9d7266d 100644 (file)
@@ -825,13 +825,13 @@ public:
 template <class K, class V> class RefCountHashMap : public HashMapBase
 {
 private:
-   static void destructor(void *object) { ((V*)object)->decRefCount(); }
+   static void destructor(void *object) { if (object != NULL) ((V*)object)->decRefCount(); }
 
 public:
    RefCountHashMap(bool objectOwner = false) : HashMapBase(objectOwner, sizeof(K)) { m_objectDestructor = destructor; }
 
-   V *get(const K& key) { V *v = (V*)_get(&key); v->incRefCount(); return v; }
-   void set(const K& key, V *value) { value->incRefCount(); _set(&key, (void *)value); }
+   V *get(const K& key) { V *v = (V*)_get(&key); if (v != NULL) v->incRefCount(); return v; }
+   void set(const K& key, V *value) { if (value != NULL) value->incRefCount(); _set(&key, (void *)value); }
    void remove(const K& key) { _remove(&key); }
    bool contains(const K& key) { return _contains(&key); }