header.c (11deb1f9f6ca6318fa9470e024b9f0634df48b4c) | header.c (5875412152ce67fb5087157b86ab6597f91d23e8) |
---|---|
1#include <sys/types.h> 2#include <unistd.h> 3#include <stdio.h> 4#include <stdlib.h> 5#include <linux/list.h> 6 7#include "util.h" 8#include "header.h" --- 25 unchanged lines hidden (view full) --- 34} 35 36void perf_header_attr__delete(struct perf_header_attr *self) 37{ 38 free(self->id); 39 free(self); 40} 41 | 1#include <sys/types.h> 2#include <unistd.h> 3#include <stdio.h> 4#include <stdlib.h> 5#include <linux/list.h> 6 7#include "util.h" 8#include "header.h" --- 25 unchanged lines hidden (view full) --- 34} 35 36void perf_header_attr__delete(struct perf_header_attr *self) 37{ 38 free(self->id); 39 free(self); 40} 41 |
42void perf_header_attr__add_id(struct perf_header_attr *self, u64 id) | 42int perf_header_attr__add_id(struct perf_header_attr *self, u64 id) |
43{ 44 int pos = self->ids; 45 46 self->ids++; 47 if (self->ids > self->size) { | 43{ 44 int pos = self->ids; 45 46 self->ids++; 47 if (self->ids > self->size) { |
48 self->size *= 2; 49 self->id = realloc(self->id, self->size * sizeof(u64)); 50 if (!self->id) 51 die("nomem"); | 48 int nsize = self->size * 2; 49 u64 *nid = realloc(self->id, nsize * sizeof(u64)); 50 51 if (nid == NULL) 52 return -1; 53 54 self->size = nsize; 55 self->id = nid; |
52 } 53 self->id[pos] = id; | 56 } 57 self->id[pos] = id; |
58 return 0; |
|
54} 55 56/* 57 * Create new perf.data header: 58 */ 59struct perf_header *perf_header__new(void) 60{ 61 struct perf_header *self = calloc(sizeof(*self), 1); --- 377 unchanged lines hidden (view full) --- 439 die("nomem"); 440 441 nr_ids = f_attr.ids.size / sizeof(u64); 442 lseek(fd, f_attr.ids.offset, SEEK_SET); 443 444 for (j = 0; j < nr_ids; j++) { 445 do_read(fd, &f_id, sizeof(f_id)); 446 | 59} 60 61/* 62 * Create new perf.data header: 63 */ 64struct perf_header *perf_header__new(void) 65{ 66 struct perf_header *self = calloc(sizeof(*self), 1); --- 377 unchanged lines hidden (view full) --- 444 die("nomem"); 445 446 nr_ids = f_attr.ids.size / sizeof(u64); 447 lseek(fd, f_attr.ids.offset, SEEK_SET); 448 449 for (j = 0; j < nr_ids; j++) { 450 do_read(fd, &f_id, sizeof(f_id)); 451 |
447 perf_header_attr__add_id(attr, f_id); | 452 if (perf_header_attr__add_id(attr, f_id) < 0) 453 die("nomem"); |
448 } 449 if (perf_header__add_attr(self, attr) < 0) 450 die("nomem"); 451 452 lseek(fd, tmp, SEEK_SET); 453 } 454 455 if (f_header.event_types.size) { --- 51 unchanged lines hidden --- | 454 } 455 if (perf_header__add_attr(self, attr) < 0) 456 die("nomem"); 457 458 lseek(fd, tmp, SEEK_SET); 459 } 460 461 if (f_header.event_types.size) { --- 51 unchanged lines hidden --- |