Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Avoid memory leak when exception is thrown.
authorArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Tue, 28 Jun 2022 11:46:33 +0000 (13:46 +0200)
committerArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Tue, 28 Jun 2022 12:12:10 +0000 (14:12 +0200)
src/kernel/routing/RoutedZone.cpp

index 908f57e..e7c2c79 100644 (file)
@@ -27,11 +27,10 @@ RoutedZone::RoutedZone(const std::string& name) : NetZoneImpl(name) {}
 Route* RoutedZone::new_extended_route(RoutingMode hierarchy, NetPoint* gw_src, NetPoint* gw_dst,
                                       const std::vector<resource::StandardLinkImpl*>& link_list, bool preserve_order)
 {
-  auto* result = new Route();
+  xbt_enforce(hierarchy != RoutingMode::recursive || (gw_src && gw_dst), "nullptr is obviously a deficient gateway");
 
+  auto* result = new Route();
   if (hierarchy == RoutingMode::recursive) {
-    xbt_enforce(gw_src && gw_dst, "nullptr is obviously a deficient gateway");
-
     result->gw_src_ = gw_src;
     result->gw_dst_ = gw_dst;
   }