Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion chromiumos-wide-profiling/buffer_reader.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,12 @@ class BufferReader : public DataReader {
size_ = size;
}

void SeekSet(size_t offset) override {
bool SeekSet(size_t offset) override {
if (offset >= size_) {
return false;
}
offset_ = offset;
return true;
}

size_t Tell() const override {
Expand Down
2 changes: 1 addition & 1 deletion chromiumos-wide-profiling/data_reader.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ class DataReader {

// Moves the data read pointer to |offset| bytes from the beginning of the
// data.
virtual void SeekSet(size_t offset) = 0;
virtual bool SeekSet(size_t offset) = 0;

// Returns the position of the data read pointer, in bytes from the beginning
// of the data.
Expand Down
5 changes: 4 additions & 1 deletion chromiumos-wide-profiling/perf_parser.cc
Original file line number Diff line number Diff line change
Expand Up @@ -237,7 +237,10 @@ void PerfParser::MaybeSortParsedEvents() {
event_and_time->event = &parsed_event;

struct perf_sample sample_info;
CHECK(reader_.ReadPerfSampleInfo(*parsed_event.raw_event, &sample_info));
if (reader_.ReadPerfSampleInfo(*parsed_event.raw_event, &sample_info) == false) {
LOG(ERROR) << "Skip one unsupported event." ;
continue;
}
event_and_time->time = sample_info.time;

events_and_times.emplace_back(std::move(event_and_time));
Expand Down
4 changes: 3 additions & 1 deletion chromiumos-wide-profiling/perf_reader.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1318,7 +1318,9 @@ bool PerfReader::ReadMetadata(DataReader* data) {
for (u32 type = HEADER_FIRST_FEATURE; type != HEADER_LAST_FEATURE; ++type) {
if ((metadata_mask_ & (1 << type)) == 0)
continue;
data->SeekSet(section_iter->offset);
if (data->SeekSet(section_iter->offset) == false) {
continue;
}
u64 size = section_iter->size;

switch (type) {
Expand Down