pstats: Fix regression: crash when opening session file

This commit is contained in:
rdb 2022-12-26 11:18:00 +01:00
parent a2890c03de
commit 2aa2a35a9f
4 changed files with 6 additions and 5 deletions

View File

@ -58,7 +58,7 @@ public:
INLINE double get_level(size_t n) const;
bool write_datagram(Datagram &destination, PStatClient *client = nullptr) const;
void read_datagram(DatagramIterator &source, PStatClientVersion *version = nullptr);
void read_datagram(DatagramIterator &source, PStatClientVersion *version);
private:
class DataPoint {

View File

@ -471,7 +471,7 @@ read_datagram(DatagramIterator &scan) {
std::string name = scan.get_string();
define_thread(thread_index, name);
_threads[thread_index]._data->read_datagram(scan);
_threads[thread_index]._data->read_datagram(scan, this);
}
update_toplevel_collectors();

View File

@ -328,11 +328,11 @@ write_datagram(Datagram &dg) const {
* Restores the thread data from a datagram.
*/
void PStatThreadData::
read_datagram(DatagramIterator &scan) {
read_datagram(DatagramIterator &scan, PStatClientVersion *version) {
int frame_number;
while ((frame_number = scan.get_int32()) != -1) {
PStatFrameData *frame_data = new PStatFrameData;
frame_data->read_datagram(scan);
frame_data->read_datagram(scan, version);
record_new_frame(frame_number, frame_data);
}

View File

@ -24,6 +24,7 @@
class PStatCollectorDef;
class PStatFrameData;
class PStatClientData;
class PStatClientVersion;
/**
* A collection of FrameData structures for recently-received frames within a
@ -63,7 +64,7 @@ public:
void record_new_frame(int frame_number, PStatFrameData *frame_data);
void write_datagram(Datagram &dg) const;
void read_datagram(DatagramIterator &scan);
void read_datagram(DatagramIterator &scan, PStatClientVersion *version);
private:
void compute_elapsed_frames() const;