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 ---