test-dir-iterator: use path argument directly
diff mbox series

Message ID 7f428974-9218-fa7c-6f3c-3c0db30a7fec@web.de
State New
Headers show
Series
  • test-dir-iterator: use path argument directly
Related show

Commit Message

René Scharfe Aug. 7, 2019, 11:15 a.m. UTC
Avoid allocating and leaking a strbuf for holding a verbatim copy of the
path argument and pass the latter directly to dir_iterator_begin()
instead.

Signed-off-by: René Scharfe <l.s.r@web.de>
---
This test helper was added after v2.22.0 (2019-06-07) by 150791adbf
(dir-iterator: add tests for dir-iterator API, 2019-07-10).

 t/helper/test-dir-iterator.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

--
2.22.0

Comments

Derrick Stolee Aug. 7, 2019, 1:57 p.m. UTC | #1
On 8/7/2019 7:15 AM, René Scharfe wrote:
> Avoid allocating and leaking a strbuf for holding a verbatim copy of the
> path argument and pass the latter directly to dir_iterator_begin()
> instead.
> 
> Signed-off-by: René Scharfe <l.s.r@web.de>
> ---
> This test helper was added after v2.22.0 (2019-06-07) by 150791adbf
> (dir-iterator: add tests for dir-iterator API, 2019-07-10).
> 
>  t/helper/test-dir-iterator.c | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
> 
> diff --git a/t/helper/test-dir-iterator.c b/t/helper/test-dir-iterator.c
> index c7c30664da..659b6bfa81 100644
> --- a/t/helper/test-dir-iterator.c
> +++ b/t/helper/test-dir-iterator.c
> @@ -19,7 +19,6 @@ static const char *error_name(int error_number)
>   */
>  int cmd__dir_iterator(int argc, const char **argv)
>  {
> -	struct strbuf path = STRBUF_INIT;
>  	struct dir_iterator *diter;
>  	unsigned int flags = 0;
>  	int iter_status;
> @@ -36,8 +35,7 @@ int cmd__dir_iterator(int argc, const char **argv)
>  	if (!*argv || argc != 1)
>  		die("dir-iterator needs exactly one non-option argument");
> 
> -	strbuf_add(&path, *argv, strlen(*argv));
> -	diter = dir_iterator_begin(path.buf, flags);
> +	diter = dir_iterator_begin(*argv, flags);

LGTM. I had a minor brain fart regarding the type of *argv and how the
const plays in, but dir_iterator_begin takes a "const char *" so this
is safe.

Thanks,
-Stolee

Patch
diff mbox series

diff --git a/t/helper/test-dir-iterator.c b/t/helper/test-dir-iterator.c
index c7c30664da..659b6bfa81 100644
--- a/t/helper/test-dir-iterator.c
+++ b/t/helper/test-dir-iterator.c
@@ -19,7 +19,6 @@  static const char *error_name(int error_number)
  */
 int cmd__dir_iterator(int argc, const char **argv)
 {
-	struct strbuf path = STRBUF_INIT;
 	struct dir_iterator *diter;
 	unsigned int flags = 0;
 	int iter_status;
@@ -36,8 +35,7 @@  int cmd__dir_iterator(int argc, const char **argv)
 	if (!*argv || argc != 1)
 		die("dir-iterator needs exactly one non-option argument");

-	strbuf_add(&path, *argv, strlen(*argv));
-	diter = dir_iterator_begin(path.buf, flags);
+	diter = dir_iterator_begin(*argv, flags);

 	if (!diter) {
 		printf("dir_iterator_begin failure: %s\n", error_name(errno));