| 171 | self.max_name_len = len(func_std_string(func)) |
| 172 | |
| 173 | def add(self, *arg_list): |
| 174 | if not arg_list: |
| 175 | return self |
| 176 | for item in reversed(arg_list): |
| 177 | if type(self) != type(item): |
| 178 | item = Stats(item) |
| 179 | self.files += item.files |
| 180 | self.total_calls += item.total_calls |
| 181 | self.prim_calls += item.prim_calls |
| 182 | self.total_tt += item.total_tt |
| 183 | for func in item.top_level: |
| 184 | self.top_level.add(func) |
| 185 | |
| 186 | if self.max_name_len < item.max_name_len: |
| 187 | self.max_name_len = item.max_name_len |
| 188 | |
| 189 | self.fcn_list = None |
| 190 | |
| 191 | for func, stat in item.stats.items(): |
| 192 | if func in self.stats: |
| 193 | old_func_stat = self.stats[func] |
| 194 | else: |
| 195 | old_func_stat = (0, 0, 0, 0, {},) |
| 196 | self.stats[func] = add_func_stats(old_func_stat, stat) |
| 197 | return self |
| 198 | |
| 199 | def dump_stats(self, filename): |
| 200 | """Write the profile data to a file we know how to load back.""" |