38f7d8c0290d8888db426e6848720bf08b62f8a4
Stefan Schuermans add cmdline to proc_begin

Stefan Schuermans authored 4 years ago

liblwpttr/src/stringlist.c  1) #include "stringlist.h"
liblwpttr/src/stringlist.c  2) #include "cleaner.h"
Stefan Schuermans factor reading file to sepr...

Stefan Schuermans authored 4 years ago

liblwptev/src/stringlist.c  3) #include "read_file.h"
Stefan Schuermans add cmdline to proc_begin

Stefan Schuermans authored 4 years ago

liblwpttr/src/stringlist.c  4) 
liblwpttr/src/stringlist.c  5) #include <fcntl.h>
liblwpttr/src/stringlist.c  6) #include <stdlib.h>
liblwpttr/src/stringlist.c  7) #include <string.h>
liblwpttr/src/stringlist.c  8) #include <sys/types.h>
liblwpttr/src/stringlist.c  9) #include <sys/stat.h>
liblwpttr/src/stringlist.c 10) #include <unistd.h>
liblwpttr/src/stringlist.c 11) 
Stefan Schuermans rename: lwproctrace -> upro...

Stefan Schuermans authored 4 years ago

libuptev/src/stringlist.c  12) static char ** uptev_stringlist_make_ptrs(char *data, size_t sz,
libuptev/src/stringlist.c  13)                                           size_t *cnt) {
Stefan Schuermans add cmdline to proc_begin

Stefan Schuermans authored 4 years ago

liblwpttr/src/stringlist.c 14)   /* count strings */
liblwpttr/src/stringlist.c 15)   size_t pos = 0;
liblwpttr/src/stringlist.c 16)   *cnt = 0;
liblwpttr/src/stringlist.c 17)   while (pos < sz) {
liblwpttr/src/stringlist.c 18)     pos += strlen(data + pos) + 1;
liblwpttr/src/stringlist.c 19)     ++*cnt;
liblwpttr/src/stringlist.c 20)   }
liblwpttr/src/stringlist.c 21)   /* allocate array for pointers */
liblwpttr/src/stringlist.c 22)   char **ptrs = malloc(*cnt * sizeof(char *));
liblwpttr/src/stringlist.c 23)   if (! ptrs) {
liblwpttr/src/stringlist.c 24)     *cnt = 0;
liblwpttr/src/stringlist.c 25)     return NULL;
liblwpttr/src/stringlist.c 26)   }
liblwpttr/src/stringlist.c 27)   /* fill pointers into array */
liblwpttr/src/stringlist.c 28)   pos = 0;
liblwpttr/src/stringlist.c 29)   for (size_t i = 0; i < *cnt; ++i) {
liblwpttr/src/stringlist.c 30)     ptrs[i] = data + pos;
liblwpttr/src/stringlist.c 31)     pos += strlen(data + pos) + 1;
liblwpttr/src/stringlist.c 32)   }
liblwpttr/src/stringlist.c 33)   return ptrs;
liblwpttr/src/stringlist.c 34) }
liblwpttr/src/stringlist.c 35) 
Stefan Schuermans rename: lwproctrace -> upro...

Stefan Schuermans authored 4 years ago

libuptev/src/stringlist.c  36) int uptev_stringlist_read(char const *pathname, size_t *n, char ***strs,
libuptev/src/stringlist.c  37)                           uptev_cleaner_t *cleaner) {
Stefan Schuermans add cmdline to proc_begin

Stefan Schuermans authored 4 years ago

liblwpttr/src/stringlist.c 38)   *n = 0;
liblwpttr/src/stringlist.c 39)   *strs = NULL;
liblwpttr/src/stringlist.c 40)   /* read file contents */
liblwpttr/src/stringlist.c 41)   size_t sz;
Stefan Schuermans rename: lwproctrace -> upro...

Stefan Schuermans authored 4 years ago

libuptev/src/stringlist.c  42)   char *data = uptev_read_file(pathname, &sz);
Stefan Schuermans add cmdline to proc_begin

Stefan Schuermans authored 4 years ago

liblwpttr/src/stringlist.c 43)   if (! data) {
liblwpttr/src/stringlist.c 44)     return -1;
liblwpttr/src/stringlist.c 45)   }
liblwpttr/src/stringlist.c 46)   /* create pointer array */
liblwpttr/src/stringlist.c 47)   size_t cnt;
Stefan Schuermans rename: lwproctrace -> upro...

Stefan Schuermans authored 4 years ago

libuptev/src/stringlist.c  48)   char **ptrs = uptev_stringlist_make_ptrs(data, sz, &cnt);
Stefan Schuermans add cmdline to proc_begin

Stefan Schuermans authored 4 years ago

liblwpttr/src/stringlist.c 49)   if (! ptrs) {
Stefan Schuermans rename: lwproctrace -> upro...

Stefan Schuermans authored 4 years ago

libuptev/src/stringlist.c  50)     free(data);
Stefan Schuermans add cmdline to proc_begin

Stefan Schuermans authored 4 years ago

liblwpttr/src/stringlist.c 51)     return -1;
liblwpttr/src/stringlist.c 52)   }
Stefan Schuermans rename: lwproctrace -> upro...

Stefan Schuermans authored 4 years ago

libuptev/src/stringlist.c  53)   /* success: add malloc-ed object to cleaner and return string array */
libuptev/src/stringlist.c  54)   uptev_cleaner_add_ptr(cleaner, data);
libuptev/src/stringlist.c  55)   uptev_cleaner_add_ptr(cleaner, ptrs);