git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v3/GSoC 2/5] path.c: implement xdg_runtime_dir()

From
惠轶群 <huiyiqun@gmail.com>
Date
Mar 28, 2016, 15:00 UTC
Message-ID
<CAKqreuxJ7Rz2G_hmnAOH7W4rBBKr=CX3pjbzJkkK1ZhN=3_o-w@mail.gmail.com>
In-Reply-To
<xmqq60w61wsp.fsf@gitster.mtv.corp.google.com>
2016-03-28 22:50 GMT+08:00 Junio C Hamano <gitster@pobox.com>:
Show 8 quoted lines
> 惠轶群 <huiyiqun@gmail.com> writes:
>
>> After read the source code of strbuf more carefully, I get the conclusion
>> that if a strbuf is initialized with STRBUF_INIT but is not used, there is
>> no need to release it. Is it true?
>
> If it is initialized with STRBUF_INIT and never used, there is no
> reason for the variable to exist ;-)

I mean, if some developer return before the strbuf is used, there seems no need to release the strbuf according to the current implementation.

But I'm not sure whether this is suitable for the abstraction of strbuf.
For example:
    const char *enter_repo(const char *path, int strict)
    {
        static struct strbuf validated_path = STRBUF_INIT;
        static struct strbuf used_path = STRBUF_INIT;
        if (!path)
            return NULL; // no need to release, right?
        ...
    }
Show 5 quoted lines
> Leaving the variable in the code, and not calling release on it at
> the end, would be OK (i.e. there is no leak) today, but may invite
> future bugs (e.g. people may use the variable to tentatively build
> their string before the function returns to leave the scope of the
> variable without adding _release() themselves).
Previous: Junio C HamanoNext: Junio C Hamano
Message 14 of 33 in “path.c: implement strbuf_mkpath()”
  1. 1/5 path.c: implement strbuf_mkpath()Hui Yiqun, Mar 23, 2016
  2. 2/5 path.c: implement xdg_runtime_dir()Hui Yiqun, Mar 23, 2016
  3. Jeff KingMar 25, 2016
  4. 惠轶群Mar 25, 2016
  5. 惠轶群Mar 25, 2016
  6. Junio C HamanoMar 25, 2016
  7. Jeff KingMar 25, 2016
  8. Junio C HamanoMar 25, 2016
  9. 惠轶群Mar 28, 2016
  10. Junio C HamanoMar 28, 2016
  11. Jeff KingMar 25, 2016
  12. 惠轶群Mar 28, 2016
  13. Junio C HamanoMar 28, 2016
  14. 惠轶群Mar 28, 2016
  15. Junio C HamanoMar 28, 2016
  16. path.c enter_repo(): fix unproper strbuf unwrapping and memory leakageHui Yiqun, Mar 28, 2016
  17. path.c enter_repo(): fix unproper strbuf unwrapping and memory leakageHui Yiqun, Mar 28, 2016
  18. Jeff KingMar 28, 2016
  19. 惠轶群Mar 29, 2016
  20. path.c enter_repo(): fix unproper strbuf unwrapping and memory leakageHui Yiqun, Mar 28, 2016
  21. 惠轶群Mar 28, 2016
  22. Junio C HamanoMar 28, 2016
  23. 惠轶群Mar 29, 2016
  24. 3/5 git-credential-cache: put socket to xdg-compatible pathHui Yiqun, Mar 23, 2016
  25. Jeff KingMar 25, 2016
  26. 惠轶群Mar 25, 2016
  27. Jeff KingMar 25, 2016
  28. 惠轶群Mar 25, 2016
  29. 4/5 test-lib.sh: unset all environment variables defined in xdg base dir spec[1]Hui Yiqun, Mar 23, 2016
  30. Jeff KingMar 25, 2016
  31. 5/5 t0301: test credential-cache support of XDG_RUNTIME_DIRHui Yiqun, Mar 23, 2016
  32. 惠轶群Mar 25, 2016
  33. Jeff KingMar 25, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.