- unsigned int table_size = getTableSize();
-
- /* Create table if needed */
- if (not routingTable_)
- routingTable_ = new RouteCreationArgs*[table_size * table_size]();
-
- /* Add the loopback if needed */
- if (surf_network_model->loopback_ && hierarchy_ == RoutingMode::base) {
- for (unsigned int i = 0; i < table_size; i++) {
- RouteCreationArgs* e_route = TO_ROUTE_FULL(i, i);
- if (not e_route) {
- e_route = new RouteCreationArgs();
- e_route->link_list.push_back(surf_network_model->loopback_);
- TO_ROUTE_FULL(i, i) = e_route;
- }
+ unsigned int table_size = get_table_size();
+ /* assure routing_table is table_size X table_size */
+ if (routing_table_.size() != table_size) {
+ routing_table_.resize(table_size);
+ for (auto& j : routing_table_) {
+ j.resize(table_size);