@@ -77,26 +77,37 @@ JL_DLLEXPORT uint64_t *jl_malloc_data_pointer(StringRef filename, int line)
77
77
return allocLine (mallocData[filename], line);
78
78
}
79
79
80
- // Resets the malloc counts.
81
- extern " C" JL_DLLEXPORT void jl_clear_malloc_data (void )
80
+ static void clear_log_data (logdata_t &logData, int resetValue)
82
81
{
83
- logdata_t ::iterator it = mallocData .begin ();
84
- for (; it != mallocData .end (); it++) {
82
+ logdata_t ::iterator it = logData .begin ();
83
+ for (; it != logData .end (); it++) {
85
84
SmallVector<logdata_block*, 0 > &bytes = (*it).second ;
86
85
SmallVector<logdata_block*, 0 >::iterator itb;
87
86
for (itb = bytes.begin (); itb != bytes.end (); itb++) {
88
87
if (*itb) {
89
88
logdata_block &data = **itb;
90
89
for (int i = 0 ; i < logdata_blocksize; i++) {
91
90
if (data[i] > 0 )
92
- data[i] = 1 ;
91
+ data[i] = resetValue ;
93
92
}
94
93
}
95
94
}
96
95
}
97
96
jl_gc_sync_total_bytes (0 );
98
97
}
99
98
99
+ // Resets the malloc counts.
100
+ extern " C" JL_DLLEXPORT void jl_clear_malloc_data (void )
101
+ {
102
+ clear_log_data (mallocData, 1 );
103
+ }
104
+
105
+ // Resets the code coverage
106
+ extern " C" JL_DLLEXPORT void jl_clear_coverage_data (void )
107
+ {
108
+ clear_log_data (coverageData, 0 );
109
+ }
110
+
100
111
static void write_log_data (logdata_t &logData, const char *extension)
101
112
{
102
113
std::string base = std::string (jl_options.julia_bindir );
0 commit comments