diff options
author | Brandon Williams <bmwill@google.com> | 2017-01-04 10:04:01 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-01-08 18:04:17 -0800 |
commit | 8aee769fa12ff0d3a4100c3d0359bc33e49db672 (patch) | |
tree | 1cfba92290690678c337d37cbe7c4247ed0e7cae /pathspec.h | |
parent | 34305f7753f9f044cb280e6d58658cb31b140693 (diff) | |
download | git-8aee769fa12ff0d3a4100c3d0359bc33e49db672.tar.gz |
pathspec: copy and free owned memory
The 'original' string entry in a pathspec_item is only duplicated some
of the time, instead always make a copy of the original and take
ownership of the memory.
Since both 'match' and 'original' string entries in a pathspec_item are
owned by the pathspec struct, they need to be freed when clearing the
pathspec struct (in 'clear_pathspec()') and duplicated when copying the
pathspec struct (in 'copy_pathspec()').
Also change the type of 'match' and 'original' to 'char *' in order to
more explicitly show the ownership of the memory.
Signed-off-by: Brandon Williams <bmwill@google.com>
Reviewed-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'pathspec.h')
-rw-r--r-- | pathspec.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/pathspec.h b/pathspec.h index 70a592e910..49fd823ddf 100644 --- a/pathspec.h +++ b/pathspec.h @@ -25,8 +25,8 @@ struct pathspec { unsigned magic; int max_depth; struct pathspec_item { - const char *match; - const char *original; + char *match; + char *original; unsigned magic; int len, prefix; int nowildcard_len; |