فهرست منبع

review: dispatcher::assure/emitter::assure

Michele Caini 6 سال پیش
والد
کامیت
965b20c37a
2فایلهای تغییر یافته به همراه6 افزوده شده و 12 حذف شده
  1. 3 6
      src/entt/signal/dispatcher.hpp
  2. 3 6
      src/entt/signal/emitter.hpp

+ 3 - 6
src/entt/signal/dispatcher.hpp

@@ -108,15 +108,12 @@ class dispatcher {
         } else {
             if(!(wtype < wrappers.size())) {
                 wrappers.resize(wtype+1);
-            }
-
-            wdata = &wrappers[wtype];
-
-            if(wdata->wrapper && wdata->runtime_type != wtype) {
+            } else if(wrappers[wtype].wrapper && wrappers[wtype].runtime_type != wtype) {
                 wrappers.emplace_back();
                 std::swap(wrappers[wtype], wrappers.back());
-                wdata = &wrappers[wtype];
             }
+
+            wdata = &wrappers[wtype];
         }
 
         if(!wdata->wrapper) {

+ 3 - 6
src/entt/signal/emitter.hpp

@@ -143,15 +143,12 @@ class emitter {
         } else {
             if(!(htype < handlers.size())) {
                 handlers.resize(htype+1);
-            }
-
-            hdata = &handlers[htype];
-
-            if(hdata->handler && hdata->runtime_type != htype) {
+            } else if(handlers[htype].handler && handlers[htype].runtime_type != htype) {
                 handlers.emplace_back();
                 std::swap(handlers[htype], handlers.back());
-                hdata = &handlers[htype];
             }
+
+            hdata = &handlers[htype];
         }
 
         if(!hdata->handler) {