On Fri, Jun 24, 2016 at 01:58:20PM +0800, Michael W. Bombardieri wrote:
> Hi,
>
> If people are interested in opencvs diffs again, sharing a
> rcsnum_free()->free()
> clean-up item. Note that rcs(1) also has a version of rcsnum_free() which
> does more
> than simply call free().
This is good. Eventually the rcs(1) rcsnum code should get the same
simplification as opencvs got regarding how it deals with rn_id as well.
.joris
>
> - Michael
>
>
> Index: add.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/cvs/add.c,v
> retrieving revision 1.112
> diff -u -p -u -r1.112 add.c
> --- add.c 5 Nov 2015 09:48:21 -0000 1.112
> +++ add.c 24 Jun 2016 06:10:45 -0000
> @@ -485,8 +485,7 @@ add_file(struct cvs_file *cf)
> break;
> }
>
> - if (head != NULL)
> - rcsnum_free(head);
> + free(head);
>
> if (stop == 1)
> return;
> Index: admin.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/cvs/admin.c,v
> retrieving revision 1.66
> diff -u -p -u -r1.66 admin.c
> --- admin.c 5 Nov 2015 09:48:21 -0000 1.66
> +++ admin.c 24 Jun 2016 06:10:45 -0000
> @@ -334,11 +334,11 @@ cvs_admin_local(struct cvs_file *cf)
> if (rcs_rev_setlog(cf->file_rcs, rev, logmsg) < 0) {
> cvs_log(LP_ERR, "failed to set logmsg for `%s' to `%s'",
> logstr, logmsg);
> - rcsnum_free(rev);
> + free(rev);
> return;
> }
>
> - rcsnum_free(rev);
> + free(rev);
> }
>
> if (orange != NULL) {
> @@ -380,7 +380,7 @@ cvs_admin_local(struct cvs_file *cf)
>
> (void)rcs_state_set(cf->file_rcs, rev, state);
>
> - rcsnum_free(rev);
> + free(rev);
> }
>
> if (lkmode != RCS_LOCK_INVAL)
> Index: annotate.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/cvs/annotate.c,v
> retrieving revision 1.65
> diff -u -p -u -r1.65 annotate.c
> --- annotate.c 5 Nov 2015 09:48:21 -0000 1.65
> +++ annotate.c 24 Jun 2016 06:10:45 -0000
> @@ -178,7 +178,7 @@ cvs_annotate_local(struct cvs_file *cf)
> rev = rcsnum_parse(cvs_specified_tag);
> if (rev == NULL)
> fatal("no such tag %s", cvs_specified_tag);
> - rcsnum_free(rev);
> + free(rev);
> rev = rcsnum_alloc();
> rcsnum_cpy(cf->file_rcs->rf_head, rev, 0);
> }
> @@ -205,9 +205,9 @@ cvs_annotate_local(struct cvs_file *cf)
> */
> if (bnum != rev) {
> rcs_annotate_getlines(cf->file_rcs, rev, &alines);
> - rcsnum_free(bnum);
> + free(bnum);
> }
> - rcsnum_free(rev);
> + free(rev);
> } else {
> rcs_rev_getlines(cf->file_rcs, (cvs_specified_date != -1 ||
> cvs_directory_date != -1) ? cf->file_rcsrev :
> Index: commit.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/cvs/commit.c,v
> retrieving revision 1.154
> diff -u -p -u -r1.154 commit.c
> --- commit.c 5 Nov 2015 09:48:21 -0000 1.154
> +++ commit.c 24 Jun 2016 06:10:45 -0000
> @@ -365,7 +365,7 @@ cvs_commit_check_files(struct cvs_file *
> if (brev != NULL) {
> if (RCSNUM_ISBRANCH(brev))
> goto next;
> - rcsnum_free(brev);
> + free(brev);
> }
>
> brev = rcs_translate_tag(tag, cf->file_rcs);
> @@ -382,7 +382,7 @@ cvs_commit_check_files(struct cvs_file *
> "a branch for file %s", tag,
> cf->file_path);
> conflicts_found++;
> - rcsnum_free(brev);
> + free(brev);
> return;
> }
>
> @@ -391,8 +391,8 @@ cvs_commit_check_files(struct cvs_file *
> "a branch for file %s", tag,
> cf->file_path);
> conflicts_found++;
> - rcsnum_free(branch);
> - rcsnum_free(brev);
> + free(branch);
> + free(brev);
> return;
> }
>
> @@ -401,18 +401,16 @@ cvs_commit_check_files(struct cvs_file *
> "a branch for file %s", tag,
> cf->file_path);
> conflicts_found++;
> - rcsnum_free(branch);
> - rcsnum_free(brev);
> + free(branch);
> + free(brev);
> return;
> }
> }
> }
>
> next:
> - if (branch != NULL)
> - rcsnum_free(branch);
> - if (brev != NULL)
> - rcsnum_free(brev);
> + free(branch);
> + free(brev);
>
> if (cf->file_status != FILE_ADDED &&
> cf->file_status != FILE_REMOVED &&
> @@ -488,7 +486,7 @@ cvs_commit_local(struct cvs_file *cf)
> d = NULL;
>
> if (cf->file_rcs != NULL && cf->file_rcs->rf_branch != NULL) {
> - rcsnum_free(cf->file_rcs->rf_branch);
> + free(cf->file_rcs->rf_branch);
> cf->file_rcs->rf_branch = NULL;
> }
>
> @@ -500,8 +498,8 @@ cvs_commit_local(struct cvs_file *cf)
> cf->file_path);
>
> if (tag != NULL) {
> - rcsnum_free(crev);
> - rcsnum_free(rrev);
> + free(crev);
> + free(rrev);
> brev = rcs_sym_getrev(cf->file_rcs, tag);
> crev = rcs_translate_tag(tag, cf->file_rcs);
> if (brev == NULL || crev == NULL) {
> @@ -525,8 +523,8 @@ cvs_commit_local(struct cvs_file *cf)
> fatal("this isnt suppose to happen, honestly");
> }
>
> - rcsnum_free(brev);
> - rcsnum_free(rrev);
> + free(brev);
> + free(rrev);
> rrev = rcsnum_branch_root(nrev);
>
> /* branch stuff was checked in cvs_commit_check_files */
> @@ -538,8 +536,7 @@ cvs_commit_local(struct cvs_file *cf)
> strlcpy(rbuf, "Non-existent", sizeof(rbuf));
> }
>
> - if (rrev != NULL)
> - rcsnum_free(rrev);
> + free(rrev);
> isnew = 0;
> if (cf->file_status == FILE_ADDED) {
> isnew = 1;
> @@ -715,8 +712,7 @@ cvs_commit_local(struct cvs_file *cf)
> break;
> }
>
> - if (crev != NULL)
> - rcsnum_free(crev);
> + free(crev);
>
> if (histtype != -1)
> cvs_history_add(histtype, cf, NULL);
> Index: diff.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/cvs/diff.c,v
> retrieving revision 1.161
> diff -u -p -u -r1.161 diff.c
> --- diff.c 5 Nov 2015 09:48:21 -0000 1.161
> +++ diff.c 24 Jun 2016 06:10:45 -0000
> @@ -407,7 +407,7 @@ cvs_diff_local(struct cvs_file *cf)
> /* -f is not allowed for unknown symbols */
> if ((diff_rev1 = rcsnum_parse(rev1)) == NULL)
> fatal("no such tag %s", rev1);
> - rcsnum_free(diff_rev1);
> + free(diff_rev1);
>
> diff_rev1 = cf->file_rcs->rf_head;
> }
> @@ -444,7 +444,7 @@ cvs_diff_local(struct cvs_file *cf)
> /* -f is not allowed for unknown symbols */
> if ((diff_rev2 = rcsnum_parse(rev2)) == NULL)
> fatal("no such tag %s", rev2);
> - rcsnum_free(diff_rev2);
> + free(diff_rev2);
>
> diff_rev2 = cf->file_rcs->rf_head;
> }
> Index: edit.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/cvs/edit.c,v
> retrieving revision 1.51
> diff -u -p -u -r1.51 edit.c
> --- edit.c 5 Nov 2015 09:48:21 -0000 1.51
> +++ edit.c 24 Jun 2016 06:10:45 -0000
> @@ -413,7 +413,7 @@ cvs_unedit_local(struct cvs_file *cf)
> free(entry);
> }
>
> - rcsnum_free(ba_rev);
> + free(ba_rev);
>
> (void)cvs_base_handle(cf, BASE_REMOVE);
>
> Index: entries.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/cvs/entries.c,v
> retrieving revision 1.106
> diff -u -p -u -r1.106 entries.c
> --- entries.c 5 Nov 2015 09:48:21 -0000 1.106
> +++ entries.c 24 Jun 2016 06:10:45 -0000
> @@ -385,8 +385,7 @@ cvs_ent_line_str(const char *name, char
> void
> cvs_ent_free(struct cvs_ent *ent)
> {
> - if (ent->ce_rev != NULL)
> - rcsnum_free(ent->ce_rev);
> + free(ent->ce_rev);
> free(ent->ce_time);
> free(ent->ce_buf);
> free(ent);
> @@ -533,7 +532,7 @@ cvs_write_tagfile(const char *dir, char
> if ((rev = rcsnum_parse(tag)) != NULL) {
> (void)xsnprintf(sticky, sizeof(sticky),
> "N%s", tag);
> - rcsnum_free(rev);
> + free(rev);
> } else {
> (void)xsnprintf(sticky, sizeof(sticky),
> "T%s", tag);
> Index: file.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/cvs/file.c,v
> retrieving revision 1.267
> diff -u -p -u -r1.267 file.c
> --- file.c 5 Nov 2015 09:48:21 -0000 1.267
> +++ file.c 24 Jun 2016 06:10:46 -0000
> @@ -977,9 +977,7 @@ cvs_file_free(struct cvs_file *cf)
> free(cf->file_name);
> free(cf->file_wd);
> free(cf->file_path);
> -
> - if (cf->file_rcsrev != NULL)
> - rcsnum_free(cf->file_rcsrev);
> + free(cf->file_rcsrev);
> free(cf->file_rpath);
> if (cf->file_ent != NULL)
> cvs_ent_free(cf->file_ent);
> Index: getlog.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/cvs/getlog.c,v
> retrieving revision 1.98
> diff -u -p -u -r1.98 getlog.c
> --- getlog.c 1 Dec 2014 21:58:46 -0000 1.98
> +++ getlog.c 24 Jun 2016 06:10:46 -0000
> @@ -276,7 +276,7 @@ cvs_log_local(struct cvs_file *cf)
>
> cvs_printf("\t%s: %s\n", sym->rs_name,
> rcsnum_tostr(rev, numb, sizeof(numb)));
> - rcsnum_free(rev);
> + free(rev);
> }
> }
>
> @@ -393,7 +393,7 @@ log_rev_print(struct rcs_delta *rdp)
> branch = rcsnum_revtobr(rb->rb_num);
> rcsnum_tostr(branch, numb, sizeof(numb));
> cvs_printf(" %s;", numb);
> - rcsnum_free(branch);
> + free(branch);
> }
> cvs_printf("\n");
> }
> Index: history.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/cvs/history.c,v
> retrieving revision 1.43
> diff -u -p -u -r1.43 history.c
> --- history.c 5 Nov 2015 09:48:21 -0000 1.43
> +++ history.c 24 Jun 2016 06:10:46 -0000
> @@ -157,7 +157,7 @@ cvs_history_add(int type, struct cvs_fil
> if ((hrev = rcs_head_get(cf->file_rcs)) == NULL)
> fatal("cvs_history_add: rcs_head_get failed");
> rcsnum_tostr(hrev, revbuf, sizeof(revbuf));
> - rcsnum_free(hrev);
> + free(hrev);
> break;
> }
>
> Index: import.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/cvs/import.c,v
> retrieving revision 1.105
> diff -u -p -u -r1.105 import.c
> --- import.c 5 Nov 2015 09:48:21 -0000 1.105
> +++ import.c 24 Jun 2016 06:10:46 -0000
> @@ -371,8 +371,8 @@ import_new(struct cvs_file *cf)
> rcs_write(cf->file_rcs);
> import_printf("N %s/%s\n", import_repository, cf->file_path);
>
> - rcsnum_free(branch);
> - rcsnum_free(brev);
> + free(branch);
> + free(brev);
> }
>
> static void
> @@ -403,7 +403,7 @@ import_update(struct cvs_file *cf)
> buf_free(b2);
> if (ret == 0) {
> import_tag(cf, brev, rev);
> - rcsnum_free(brev);
> + free(brev);
> if (cvs_noexec != 1)
> rcs_write(cf->file_rcs);
> import_printf("U %s/%s\n", import_repository, cf->file_path);
> @@ -438,7 +438,7 @@ import_update(struct cvs_file *cf)
> if (kflag)
> rcs_kwexp_set(cf->file_rcs, kflag);
>
> - rcsnum_free(brev);
> + free(brev);
> rcs_write(cf->file_rcs);
> }
>
> Index: rcs.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/cvs/rcs.c,v
> retrieving revision 1.313
> diff -u -p -u -r1.313 rcs.c
> --- rcs.c 5 Nov 2015 09:48:21 -0000 1.313
> +++ rcs.c 24 Jun 2016 06:10:46 -0000
> @@ -243,7 +243,7 @@ rcs_close(RCSFILE *rfp)
> while (!TAILQ_EMPTY(&(rfp->rf_symbols))) {
> rsp = TAILQ_FIRST(&(rfp->rf_symbols));
> TAILQ_REMOVE(&(rfp->rf_symbols), rsp, rs_list);
> - rcsnum_free(rsp->rs_num);
> + free(rsp->rs_num);
> free(rsp->rs_name);
> free(rsp);
> }
> @@ -251,15 +251,13 @@ rcs_close(RCSFILE *rfp)
> while (!TAILQ_EMPTY(&(rfp->rf_locks))) {
> rlp = TAILQ_FIRST(&(rfp->rf_locks));
> TAILQ_REMOVE(&(rfp->rf_locks), rlp, rl_list);
> - rcsnum_free(rlp->rl_num);
> + free(rlp->rl_num);
> free(rlp->rl_name);
> free(rlp);
> }
>
> - if (rfp->rf_head != NULL)
> - rcsnum_free(rfp->rf_head);
> - if (rfp->rf_branch != NULL)
> - rcsnum_free(rfp->rf_branch);
> + free(rfp->rf_head);
> + free(rfp->rf_branch);
>
> if (rfp->rf_file != NULL)
> fclose(rfp->rf_file);
> @@ -468,7 +466,7 @@ rcs_head_get(RCSFILE *file)
> file->rf_branch->rn_len) == 0)
> break;
> }
> - rcsnum_free(rootrev);
> + free(rootrev);
>
> if (brp == NULL)
> fatal("rcs_head_get: could not find first default "
> @@ -533,7 +531,7 @@ rcs_branch_new(RCSFILE *file, RCSNUM *re
>
> if (rcsnum_inc(brev) == NULL ||
> rcsnum_inc(brev) == NULL) {
> - rcsnum_free(brev);
> + free(brev);
> return (NULL);
> }
> }
> @@ -682,7 +680,7 @@ rcs_sym_remove(RCSFILE *file, const char
>
> TAILQ_REMOVE(&(file->rf_symbols), symp, rs_list);
> free(symp->rs_name);
> - rcsnum_free(symp->rs_num);
> + free(symp->rs_num);
> free(symp);
>
> /* not synced anymore */
> @@ -858,7 +856,7 @@ rcs_lock_remove(RCSFILE *file, const cha
> return (-1);
>
> TAILQ_REMOVE(&(file->rf_locks), lkp, rl_list);
> - rcsnum_free(lkp->rl_num);
> + free(lkp->rl_num);
> free(lkp->rl_name);
> free(lkp);
>
> @@ -1209,8 +1207,7 @@ rcs_rev_add(RCSFILE *rf, RCSNUM *rev, co
> }
> }
>
> - if (root != NULL)
> - rcsnum_free(root);
> + free(root);
>
> /* not synced anymore */
> rf->rf_flags &= ~RCS_SYNCED;
> @@ -1292,10 +1289,10 @@ rcs_rev_remove(RCSFILE *rf, RCSNUM *rev)
> if (rcs_head_set(rf, prevrdp->rd_num) < 0)
> fatal("rcs_head_set failed");
> } else if (nextrdp != NULL) {
> - rcsnum_free(nextrdp->rd_next);
> + free(nextrdp->rd_next);
> nextrdp->rd_next = rcsnum_alloc();
> } else {
> - rcsnum_free(rf->rf_head);
> + free(rf->rf_head);
> rf->rf_head = NULL;
> }
>
> @@ -1451,11 +1448,8 @@ rcs_freedelta(struct rcs_delta *rdp)
> {
> struct rcs_branch *rb;
>
> - if (rdp->rd_num != NULL)
> - rcsnum_free(rdp->rd_num);
> - if (rdp->rd_next != NULL)
> - rcsnum_free(rdp->rd_next);
> -
> + free(rdp->rd_num);
> + free(rdp->rd_next);
> free(rdp->rd_author);
> free(rdp->rd_locker);
> free(rdp->rd_state);
> @@ -1464,7 +1458,7 @@ rcs_freedelta(struct rcs_delta *rdp)
>
> while ((rb = TAILQ_FIRST(&(rdp->rd_branches))) != NULL) {
> TAILQ_REMOVE(&(rdp->rd_branches), rb, rb_list);
> - rcsnum_free(rb->rb_num);
> + free(rb->rb_num);
> free(rb);
> }
>
> @@ -1682,7 +1676,7 @@ rcs_get_revision(const char *revstr, RCS
> */
> if (rfp->rf_head == NULL || rcsnum_cmp(rev, rfp->rf_head,
> MINIMUM(rfp->rf_head->rn_len, rev->rn_len)) < 0) {
> - rcsnum_free(rev);
> + free(rev);
> return (NULL);
> }
> return (rev);
> @@ -1693,7 +1687,7 @@ rcs_get_revision(const char *revstr, RCS
>
> if ((rdp = rcs_findrev(rfp, brev)) == NULL)
> fatal("rcs_get_revision: tag `%s' does not exist", revstr);
> - rcsnum_free(brev);
> + free(brev);
>
> TAILQ_FOREACH(brp, &(rdp->rd_branches), rb_list) {
> for (i = 0; i < rev->rn_len; i++)
> @@ -1704,7 +1698,7 @@ rcs_get_revision(const char *revstr, RCS
> break;
> }
>
> - rcsnum_free(rev);
> + free(rev);
> frev = rcsnum_alloc();
> if (brp == NULL) {
> rcsnum_cpy(rdp->rd_num, frev, 0);
> @@ -1781,7 +1775,7 @@ rcs_rev_getlines(RCSFILE *rfp, RCSNUM *f
> annotate = ANNOTATE_NOW;
>
> /* annotate down to 1.1 from where we are */
> - rcsnum_free(bnum);
> + free(bnum);
> bnum = rcsnum_parse("1.1");
> if (!rcsnum_differ(rdp->rd_num, bnum)) {
> goto next;
> @@ -1845,7 +1839,7 @@ again:
> annotate = ANNOTATE_NOW;
>
> /* annotate down to 1.1 from where we are */
> - rcsnum_free(bnum);
> + free(bnum);
> bnum = rcsnum_parse("1.1");
>
> if (!rcsnum_differ(rdp->rd_num, bnum))
> @@ -1877,7 +1871,7 @@ next:
> free(*alines);
> *alines = NULL;
> cvs_freelines(dlines);
> - rcsnum_free(bnum);
> + free(bnum);
> return (NULL);
> }
> fatal("expected branch not found on branch list");
> @@ -1909,7 +1903,7 @@ done:
> }
>
> if (bnum != tnum)
> - rcsnum_free(bnum);
> + free(bnum);
>
> return (dlines);
> }
> @@ -2007,7 +2001,7 @@ rcs_annotate_getlines(RCSFILE *rfp, RCSN
> } while (rcsnum_differ(rdp->rd_num, frev));
>
> if (bnum != frev)
> - rcsnum_free(bnum);
> + free(bnum);
>
> /*
> * All lines have been parsed, now they must be copied over
> @@ -2587,7 +2581,7 @@ rcs_translate_tag(const char *revstr, RC
> } else
> follow = 0;
>
> - rcsnum_free(brev);
> + free(brev);
> }
>
> if (cvs_specified_date != -1)
> @@ -2602,7 +2596,7 @@ rcs_translate_tag(const char *revstr, RC
> }
>
> /* Find the latest delta on that branch */
> - rcsnum_free(rev);
> + free(rev);
> for (;;) {
> if (rdp->rd_next->rn_len == 0)
> break;
> @@ -2619,10 +2613,10 @@ rcs_translate_tag(const char *revstr, RC
> if (frev != NULL) {
> brev = rcsnum_revtobr(frev);
> brev->rn_len = rev->rn_len - 1;
> - rcsnum_free(frev);
> + free(frev);
> }
>
> - rcsnum_free(rev);
> + free(rev);
>
> do {
> deltatime = timegm(&(rdp->rd_date));
> Index: rcsnum.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/cvs/rcsnum.c,v
> retrieving revision 1.57
> diff -u -p -u -r1.57 rcsnum.c
> --- rcsnum.c 5 Nov 2015 09:48:21 -0000 1.57
> +++ rcsnum.c 24 Jun 2016 06:10:46 -0000
> @@ -82,22 +82,11 @@ rcsnum_parse(const char *str)
>
> num = rcsnum_alloc();
> if (rcsnum_aton(str, &ep, num) < 0 || *ep != '\0') {
> - rcsnum_free(num);
> + free(num);
> num = NULL;
> }
>
> return (num);
> -}
> -
> -/*
> - * rcsnum_free()
> - *
> - * Free an RCSNUM structure previously allocated with rcsnum_alloc().
> - */
> -void
> -rcsnum_free(RCSNUM *rn)
> -{
> - free(rn);
> }
>
> /*
> Index: rcsparse.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/cvs/rcsparse.c,v
> retrieving revision 1.12
> diff -u -p -u -r1.12 rcsparse.c
> --- rcsparse.c 5 Nov 2015 09:48:21 -0000 1.12
> +++ rcsparse.c 24 Jun 2016 06:10:46 -0000
> @@ -343,7 +343,7 @@ rcsparse_free(RCSFILE *rfp)
>
> free(pdp->rp_buf);
> if (pdp->rp_token == RCS_TYPE_REVISION)
> - rcsnum_free(pdp->rp_value.rev);
> + free(pdp->rp_value.rev);
> free(pdp);
> }
>
> @@ -557,12 +557,12 @@ rcsparse_textrevision(RCSFILE *rfp, stru
> if (rdp == NULL) {
> rcsparse_warnx(rfp, "delta for revision \"%s\" not found",
> pdp->rp_buf);
> - rcsnum_free(pdp->rp_value.rev);
> + free(pdp->rp_value.rev);
> return (1);
> }
> pdp->rp_delta = rdp;
>
> - rcsnum_free(pdp->rp_value.rev);
> + free(pdp->rp_value.rev);
> return (0);
> }
>
> @@ -1028,7 +1028,7 @@ rcsparse_token(RCSFILE *rfp, int allowed
> return (0);
> }
> if (datenum->rn_len != 6) {
> - rcsnum_free(datenum);
> + free(datenum);
> rcsparse_warnx(rfp, "invalid date \"%s\"", pdp->rp_buf);
> return (0);
> }
> @@ -1040,7 +1040,7 @@ rcsparse_token(RCSFILE *rfp, int allowed
> pdp->rp_value.date.tm_hour = datenum->rn_id[3];
> pdp->rp_value.date.tm_min = datenum->rn_id[4];
> pdp->rp_value.date.tm_sec = datenum->rn_id[5];
> - rcsnum_free(datenum);
> + free(datenum);
> break;
> case RCS_TYPE_NUMBER:
> pdp->rp_value.rev = rcsnum_parse(pdp->rp_buf);
> @@ -1058,7 +1058,7 @@ rcsparse_token(RCSFILE *rfp, int allowed
> return (0);
> }
> if (!RCSNUM_ISBRANCH(pdp->rp_value.rev)) {
> - rcsnum_free(pdp->rp_value.rev);
> + free(pdp->rp_value.rev);
> rcsparse_warnx(rfp, "expected branch, got \"%s\"",
> pdp->rp_buf);
> return (0);
> @@ -1078,7 +1078,7 @@ rcsparse_token(RCSFILE *rfp, int allowed
> pdp->rp_value.rev = rcsnum_parse(pdp->rp_buf);
> if (pdp->rp_value.rev != NULL) {
> if (RCSNUM_ISBRANCH(pdp->rp_value.rev)) {
> - rcsnum_free(pdp->rp_value.rev);
> + free(pdp->rp_value.rev);
> rcsparse_warnx(rfp,
> "expected revision, got \"%s\"",
> pdp->rp_buf);
> Index: tag.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/cvs/tag.c,v
> retrieving revision 1.83
> diff -u -p -u -r1.83 tag.c
> --- tag.c 22 Dec 2015 21:36:57 -0000 1.83
> +++ tag.c 24 Jun 2016 06:10:46 -0000
> @@ -285,7 +285,7 @@ cvs_tag_check_files(struct cvs_file *cf)
> goto bad;
> rcsnum_tostr(rev, rbuf, sizeof(rbuf));
> fi->crevstr = xstrdup(rbuf);
> - rcsnum_free(rev);
> + free(rev);
> } else if (runflags & T_DELETE)
> goto bad;
>
> @@ -314,8 +314,7 @@ bad:
> free(fi->nrevstr);
> free(fi->tag_new);
> free(fi->tag_old);
> - if (rev != NULL)
> - rcsnum_free(rev);
> + free(rev);
> free(fi);
> }
>
> @@ -425,11 +424,11 @@ tag_add(struct cvs_file *cf)
> trev = rcs_sym_getrev(cf->file_rcs, tag_name);
> if (trev != NULL) {
> if (rcsnum_cmp(srev, trev, 0) == 0) {
> - rcsnum_free(trev);
> + free(trev);
> return (-1);
> }
> (void)rcsnum_tostr(trev, trevbuf, sizeof(trevbuf));
> - rcsnum_free(trev);
> + free(trev);
>
> if (!(runflags & T_FORCE_MOVE)) {
> cvs_printf("W %s : %s ", cf->file_path, tag_name);
> @@ -460,10 +459,10 @@ tag_add(struct cvs_file *cf)
> "failed to set tag %s to revision %s in %s",
> tag_name, revbuf, cf->file_rcs->rf_path);
> }
> - rcsnum_free(trev);
> + free(trev);
> return (-1);
> }
>
> - rcsnum_free(trev);
> + free(trev);
> return (0);
> }
> Index: update.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/cvs/update.c,v
> retrieving revision 1.171
> diff -u -p -u -r1.171 update.c
> --- update.c 5 Nov 2015 09:48:21 -0000 1.171
> +++ update.c 24 Jun 2016 06:10:46 -0000
> @@ -712,11 +712,8 @@ update_join_file(struct cvs_file *cf)
> update_clear_conflict(cf);
>
> out:
> - if (rev1 != NULL)
> - rcsnum_free(rev1);
> - if (rev2 != NULL)
> - rcsnum_free(rev2);
> -
> + free(rev1);
> + free(rev2);
> free(jrev1);
> free(jrev2);
> }
> Index: util.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/cvs/util.c,v
> retrieving revision 1.158
> diff -u -p -u -r1.158 util.c
> --- util.c 5 Nov 2015 09:48:21 -0000 1.158
> +++ util.c 24 Jun 2016 06:10:46 -0000
> @@ -847,8 +847,8 @@ cvs_revision_select(RCSFILE *file, char
> }
> }
>
> - rcsnum_free(lnum);
> - rcsnum_free(rnum);
> + free(lnum);
> + free(rnum);
> }
>
> cvs_argv_destroy(revargv);
> Index: rcs.h
> ===================================================================
> RCS file: /cvs/src/usr.bin/cvs/rcs.h,v
> retrieving revision 1.101
> diff -u -p -u -r1.101 rcs.h
> --- rcs.h 3 Jun 2013 17:04:35 -0000 1.101
> +++ rcs.h 24 Jun 2016 06:10:46 -0000
> @@ -263,7 +263,6 @@ RCSNUM *rcsnum_inc(RCSNUM *);
> RCSNUM *rcsnum_dec(RCSNUM *);
> RCSNUM *rcsnum_branch_root(RCSNUM *);
> RCSNUM *rcsnum_new_branch(RCSNUM *);
> -void rcsnum_free(RCSNUM *);
> int rcsnum_addmagic(RCSNUM *);
> int rcsnum_aton(const char *, char **, RCSNUM *);
> char *rcsnum_tostr(const RCSNUM *, char *, size_t);