Limit size of log_signal buffer to 100 elements

This commit is contained in:
Clifford Wolf 2014-08-02 15:52:21 +02:00
parent e590ffc84d
commit 08392aad8f
2 changed files with 9 additions and 2 deletions

View File

@ -41,6 +41,7 @@ int log_verbose_level;
std::vector<int> header_count;
std::list<std::string> string_buf;
int string_buf_size = 0;
static struct timeval initial_tv = { 0, 0 };
static bool next_print_log = false;
@ -166,6 +167,7 @@ void log_pop()
{
header_count.pop_back();
string_buf.clear();
string_buf_size = 0;
log_flush();
}
@ -174,6 +176,7 @@ void log_reset_stack()
while (header_count.size() > 1)
header_count.pop_back();
string_buf.clear();
string_buf_size = 0;
log_flush();
}
@ -197,6 +200,10 @@ const char *log_signal(const RTLIL::SigSpec &sig, bool autoint)
fputc(0, f);
fclose(f);
if (string_buf_size < 100)
string_buf_size++;
else
string_buf.pop_front();
string_buf.push_back(ptr);
free(ptr);

View File

@ -74,7 +74,7 @@ namespace RTLIL
struct IdString
{
// the global string cache
// the global id string cache
struct char_ptr_cmp {
bool operator()(const char *a, const char *b) {
@ -134,7 +134,7 @@ namespace RTLIL
global_free_idx_list_.push_back(idx);
}
// The actual IdString objects just is a single int
// the actual IdString object is just is a single int
int index_;