summaryrefslogtreecommitdiff
path: root/src/systemc/ext/channel/sc_in.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/systemc/ext/channel/sc_in.hh')
-rw-r--r--src/systemc/ext/channel/sc_in.hh19
1 files changed, 10 insertions, 9 deletions
diff --git a/src/systemc/ext/channel/sc_in.hh b/src/systemc/ext/channel/sc_in.hh
index a76840161..3fea8a803 100644
--- a/src/systemc/ext/channel/sc_in.hh
+++ b/src/systemc/ext/channel/sc_in.hh
@@ -33,6 +33,7 @@
#include <string>
#include "../core/sc_event.hh"
+#include "../core/sc_main.hh"
#include "../core/sc_port.hh"
#include "../utils/sc_trace_file.hh"
#include "sc_signal_in_if.hh"
@@ -155,10 +156,10 @@ template <class T>
inline void
sc_trace(sc_trace_file *tf, const sc_in<T> &i, const std::string &name)
{
- if (i.size())
- sc_trace(tf, i->read(), name);
- else
+ if (::sc_core::sc_get_status() < ::sc_core::SC_START_OF_SIMULATION)
i.add_trace(tf, name);
+ else
+ sc_trace(tf, i->read(), name);
}
template <>
@@ -316,10 +317,10 @@ inline void
sc_trace<bool>(sc_trace_file *tf, const sc_in<bool> &i,
const std::string &name)
{
- if (i.size())
- sc_trace(tf, i->read(), name);
- else
+ if (::sc_core::sc_get_status() < ::sc_core::SC_START_OF_SIMULATION)
i.add_trace(tf, name);
+ else
+ sc_trace(tf, i->read(), name);
}
template <>
@@ -475,10 +476,10 @@ inline void
sc_trace<sc_dt::sc_logic>(sc_trace_file *tf, const sc_in<sc_dt::sc_logic> &i,
const std::string &name)
{
- if (i.size())
- sc_trace(tf, i->read(), name);
- else
+ if (::sc_core::sc_get_status() < ::sc_core::SC_START_OF_SIMULATION)
i.add_trace(tf, name);
+ else
+ sc_trace(tf, i->read(), name);
}
} // namespace sc_core