hunk: free hunk list resources properly

laumann
Jul 17, 2023, 12:58 PM
PC54CREYZ6MOAPTPUUFV5VD3FMRTT6FGOUMOO25GD6BFZJMSS6BAC

Dependencies

  • [2] 5D2IYPL7 change: introduce changestore, print deleted lines
  • [3] YFBKBUKB change: rename binstat -> bc
  • [4] JVU3TTT5 all: switch away from typedefing anonymous structs
  • [5] ZKAOPMCH change: Implement decoding of edits, atoms, positions, among others
  • [6] QA7HY2TH hunk + hash: replace abort() calls with die()
  • [7] JAGXXSR7 change: initial work on decoding hunks
  • [*] Q7TKZCJP Add initial support for reading the offsets from a (fixed) change
  • [*] YDQLW2ZO change: rework printing of patches - print Edit and Newvertex types

Change contents

  • replacement in hunk.h at line 137
    [4.1225][4.1225:1276](),[4.1276][2.212:255]()
    void hunk_hunklistinit(struct hunklist *, size_t);
    void hunk_hunklistfree(struct hunklist *);
    [4.1225]
    [4.1332]
    void hunklistinit(struct hunklist *, size_t);
    void hunklistfree(struct hunklist *);
  • replacement in hunk.c at line 47
    [4.618][4.1330:1387]()
    hunk_hunklistinit(struct hunklist *hunklist, size_t len)
    [4.618]
    [4.668]
    hunklistinit(struct hunklist *hunklist, size_t len)
  • replacement in hunk.c at line 54
    [2.264][2.264:309]()
    hunk_hunklistfree(struct hunklist *hunklist)
    [2.264]
    [2.309]
    hunklistfree(struct hunklist *hunklist)
  • replacement in hunk.c at line 62
    [2.451][2.451:464]()
    /* TBD */
    [2.451]
    [2.464]
    atomfree(&b->filemove.del);
    atomfree(&b->filemove.add);
    free(b->filemove.path);
  • replacement in hunk.c at line 67
    [2.491][2.491:504]()
    /* TBD */
    [2.491]
    [2.504]
    atomfree(&b->filedel.del);
    /* if (b->filedel.contents) */
    /* atomfree(&b->filedel.contents); */
    free(b->filedel.path);
    if (b->filedel.encoding)
    free(b->filedel.encoding);
    break;
    case FILE_UNDEL:
    atomfree(&b->fileundel.undel);
    /* FIXME check for optional fileundel.contents */
    free(b->fileundel.path);
    if (b->fileundel.encoding)
    free(b->fileundel.encoding);
    break;
    case FILE_ADD:
    atomfree(&b->fileadd.addname);
    atomfree(&b->fileadd.addinode);
    /* if (b->fileadd.contents) */
    /* atomfree(&b->fileadd.contents); */
    free(b->fileadd.path);
    if (b->fileadd.encoding)
    free(b->fileadd.encoding);
    break;
    case EDIT:
    atomfree(&b->edit.change);
    free(b->edit.local.path);
    if (b->edit.encoding)
    free(b->edit.encoding);
    break;
    case REPLACEMENT:
    atomfree(&b->replacement.change);
    atomfree(&b->replacement.replacement);
    free(b->replacement.local.path);
    if (b->replacement.encoding)
    free(b->replacement.encoding);
    break;
    case SOLVE_ORDER_CONFLICT:
    atomfree(&b->solveorderconflict.change);
    free(b->solveorderconflict.local.path);
    break;
    case UNSOLVE_ORDER_CONFLICT:
    atomfree(&b->unsolveorderconflict.change);
    free(b->unsolveorderconflict.local.path);
    break;
    case SOLVE_NAME_CONFLICT:
    atomfree(&b->solvenameconflict.name);
    free(b->solvenameconflict.path);
    break;
    case UNSOLVE_NAME_CONFLICT:
    atomfree(&b->unsolvenameconflict.name);
    free(b->unsolvenameconflict.path);
  • replacement in hunk.c at line 119
    [2.514][2.514:525]()
    default:
    [2.514]
    [2.525]
    case RESURRECT_ZOMBIES:
    atomfree(&b->resurrectzombies.change);
    free(b->resurrectzombies.local.path);
    if (b->resurrectzombies.encoding)
    free(b->resurrectzombies.encoding);
  • edit in hunk.c at line 125
    [2.535]
    [2.535]
    case ADD_ROOT:
    atomfree(&b->addroot.name);
    atomfree(&b->addroot.inode);
    break;
    case DEL_ROOT:
    atomfree(&b->delroot.name);
    atomfree(&b->delroot.inode);
    break;
  • edit in hunk.c at line 135
    [2.542]
    [4.44]
    free(hunklist->entries);
  • replacement in change.c at line 297
    [3.3062][4.4885:4926](),[4.3911][4.4885:4926]()
    hunk_hunklistinit(&hashed->hunks, len);
    [3.3062]
    [4.4926]
    hunklistinit(&hashed->hunks, len);
  • edit in change.c at line 941
    [2.6329]
    [10.995]
    hunklistfree(&h->hunks);