mem-garnet: Use smart pointers for CrossbarSwitch's members

Use smart pointers for the pointers managed by CrossbarSwitch.

Change-Id: I71958c72cde5981d730aa3f68bba0ffbe4c2506f
Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24244
Reviewed-by: Bobby R. Bruce <bbruce@ucdavis.edu>
Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu>
Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
Daniel R. Carvalho
2020-01-07 23:49:52 +01:00
committed by Daniel Carvalho
parent 80c5add40b
commit aa5140e26e
2 changed files with 8 additions and 13 deletions

View File

@@ -1,6 +1,7 @@
/* /*
* Copyright (c) 2008 Princeton University * Copyright (c) 2020 Inria
* Copyright (c) 2016 Georgia Institute of Technology * Copyright (c) 2016 Georgia Institute of Technology
* Copyright (c) 2008 Princeton University
* All rights reserved. * All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
@@ -33,13 +34,10 @@
#include "mem/ruby/network/garnet2.0/CrossbarSwitch.hh" #include "mem/ruby/network/garnet2.0/CrossbarSwitch.hh"
#include "base/stl_helpers.hh"
#include "debug/RubyNetwork.hh" #include "debug/RubyNetwork.hh"
#include "mem/ruby/network/garnet2.0/OutputUnit.hh" #include "mem/ruby/network/garnet2.0/OutputUnit.hh"
#include "mem/ruby/network/garnet2.0/Router.hh" #include "mem/ruby/network/garnet2.0/Router.hh"
using m5::stl_helpers::deletePointers;
CrossbarSwitch::CrossbarSwitch(Router *router) CrossbarSwitch::CrossbarSwitch(Router *router)
: Consumer(router) : Consumer(router)
{ {
@@ -48,11 +46,6 @@ CrossbarSwitch::CrossbarSwitch(Router *router)
m_crossbar_activity = 0; m_crossbar_activity = 0;
} }
CrossbarSwitch::~CrossbarSwitch()
{
deletePointers(m_switch_buffer);
}
void void
CrossbarSwitch::init() CrossbarSwitch::init()
{ {
@@ -61,7 +54,7 @@ CrossbarSwitch::init()
m_num_inports = m_router->get_num_inports(); m_num_inports = m_router->get_num_inports();
m_switch_buffer.resize(m_num_inports); m_switch_buffer.resize(m_num_inports);
for (int i = 0; i < m_num_inports; i++) { for (int i = 0; i < m_num_inports; i++) {
m_switch_buffer[i] = new flitBuffer(); m_switch_buffer[i].reset(new flitBuffer());
} }
} }

View File

@@ -1,6 +1,7 @@
/* /*
* Copyright (c) 2008 Princeton University * Copyright (c) 2020 Inria
* Copyright (c) 2016 Georgia Institute of Technology * Copyright (c) 2016 Georgia Institute of Technology
* Copyright (c) 2008 Princeton University
* All rights reserved. * All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
@@ -35,6 +36,7 @@
#define __MEM_RUBY_NETWORK_GARNET2_0_CROSSBARSWITCH_HH__ #define __MEM_RUBY_NETWORK_GARNET2_0_CROSSBARSWITCH_HH__
#include <iostream> #include <iostream>
#include <memory>
#include <vector> #include <vector>
#include "mem/ruby/common/Consumer.hh" #include "mem/ruby/common/Consumer.hh"
@@ -48,7 +50,7 @@ class CrossbarSwitch : public Consumer
{ {
public: public:
CrossbarSwitch(Router *router); CrossbarSwitch(Router *router);
~CrossbarSwitch(); ~CrossbarSwitch() = default;
void wakeup(); void wakeup();
void init(); void init();
void print(std::ostream& out) const {}; void print(std::ostream& out) const {};
@@ -66,7 +68,7 @@ class CrossbarSwitch : public Consumer
int m_num_inports; int m_num_inports;
double m_crossbar_activity; double m_crossbar_activity;
Router *m_router; Router *m_router;
std::vector<flitBuffer *> m_switch_buffer; std::vector<std::unique_ptr<flitBuffer>> m_switch_buffer;
std::vector<OutputUnit *> m_output_unit; std::vector<OutputUnit *> m_output_unit;
}; };