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

[PATCH 00/18] mark file-local symbols static

From
Junio C Hamano <gitster@pobox.com>
Date
Jan 12, 2010, 07:52 UTC
Message-ID
<1263282781-25596-1-git-send-email-gitster@pobox.com>

The early part of the series up to [PATCH 12/18] are uncontroversial; they all change "extern" symbols that are not used outside of the file they are defined in to "static".

The remainder remove functions that are not called from anywhere. While the result of applying these patches still compiles, I find removal of some are iffy:

 * map_email(), has_pack_file() and strbuf_tolower() are not even
   documented.  They should go.  It is trivial to reimplement them when a
   new caller needs it.
 * Even though parse_blob() in blob.c is never called, it is part of the
   "object layer" suite that consistently defines their initializers as
   parse_$type().  But it has never been called by anybody since its
   inception at a510bfa (Mark blobs as parsed when they're actually
   parsed, 2005-04-28).
   By the way, Documentation/technical/api-object-access.txt needs some
   love.
 * object_list_append() and object_list_length() in object.c do not have
   any callers, and they are implementations of rather inefficient API.
   Perhaps they should go.
 * I am a bit worried about nobody calling invalidate_lstat_cache() and
   clear_lstat_cache().  Kjetil introduced them in aeabab5 (lstat_cache():
   introduce invalidate_lstat_cache() function, 2009-01-18) and bda6eb0
   (lstat_cache(): introduce clear_lstat_cache() function, 2009-01-18)
   respectively but as far as I can tell there wasn't any user of these
   functions, ever.  They may be broken and nobody knew they were as
   nothing calls them, but more importantly it could be that some existing
   codepaths aren't calling them when they should.

In this series, I am not removing alloc_report(), print_string_list(), and unsorted_string_list_has_string(). Among these three, the first two are clearly for debugging and the latter two are documented interfaces, even though nobody uses them.

I've made sure that they apply to 'master', 'next' and 'pu' (application to 'pu' has two conflicts that are trivial in 04/18 and 08/18) and the result compiles.

Junio C Hamano (18):
  bisect.c: mark file-local function static
  builtin-rev-list.c: mark file-local function static
  pretty.c: mark file-local function static
  date.c: mark file-local function static
  http.c: mark file-local functions static
  entry.c: mark file-local function static
  parse-options.c: mark file-local function static
  read-cache.c: mark file-local functions static
  remote-curl.c: mark file-local function static
  quote.c: mark file-local function static
  submodule.c: mark file-local function static
  utf8.c: mark file-local function static
  mailmap.c: remove unused function
  sha1_file.c: remove unused function
  strbuf.c: remove unused function
  blob.c: remove unused function
  object.c: remove unused functions
  symlinks.c: remove unused functions
 bisect.c           |    2 +-
 bisect.h           |    2 --
 blob.c             |   21 ---------------------
 blob.h             |    2 --
 builtin-rev-list.c |    2 +-
 cache.h            |    8 --------
 commit.h           |    1 -
 date.c             |    2 +-
 entry.c            |    2 +-
 git-compat-util.h  |    1 -
 http.c             |   10 ++++++++--
 http.h             |    9 ---------
 mailmap.c          |    5 -----
 mailmap.h          |    1 -
 object.c           |   21 ---------------------
 object.h           |    5 -----
 parse-options.c    |    7 +++++--
 parse-options.h    |    3 ---
 pretty.c           |    2 +-
 quote.c            |    2 +-
 quote.h            |    1 -
 read-cache.c       |    6 ++++--
 remote-curl.c      |    2 +-
 sha1_file.c        |    8 --------
 strbuf.c           |    7 -------
 strbuf.h           |    1 -
 submodule.c        |    2 +-
 symlinks.c         |   31 -------------------------------
 utf8.c             |    2 +-
 utf8.h             |    1 -
 30 files changed, 26 insertions(+), 143 deletions(-)
Next: Junio C Hamano
Message 1 of 24 in “mark file-local symbols static”
  1. 00/18 mark file-local symbols staticJunio C Hamano, Jan 12, 2010
  2. 01/18 bisect.c: mark file-local function staticJunio C Hamano, Jan 12, 2010
  3. 02/18 builtin-rev-list.c: mark file-local function staticJunio C Hamano, Jan 12, 2010
  4. 03/18 pretty.c: mark file-local function staticJunio C Hamano, Jan 12, 2010
  5. 04/18 date.c: mark file-local function staticJunio C Hamano, Jan 12, 2010
  6. Johannes SixtJan 12, 2010
  7. Junio C HamanoJan 12, 2010
  8. Johannes SixtJan 12, 2010
  9. 05/18 http.c: mark file-local functions staticJunio C Hamano, Jan 12, 2010
  10. 06/18 entry.c: mark file-local function staticJunio C Hamano, Jan 12, 2010
  11. 07/18 parse-options.c: mark file-local function staticJunio C Hamano, Jan 12, 2010
  12. 08/18 read-cache.c: mark file-local functions staticJunio C Hamano, Jan 12, 2010
  13. 09/18 remote-curl.c: mark file-local function staticJunio C Hamano, Jan 12, 2010
  14. 10/18 quote.c: mark file-local function staticJunio C Hamano, Jan 12, 2010
  15. 11/18 submodule.c: mark file-local function staticJunio C Hamano, Jan 12, 2010
  16. 12/18 utf8.c: mark file-local function staticJunio C Hamano, Jan 12, 2010
  17. 13/18 mailmap.c: remove unused functionJunio C Hamano, Jan 12, 2010
  18. 14/18 sha1_file.c: remove unused functionJunio C Hamano, Jan 12, 2010
  19. 15/18 strbuf.c: remove unused functionJunio C Hamano, Jan 12, 2010
  20. 16/18 blob.c: remove unused functionJunio C Hamano, Jan 12, 2010
  21. Daniel BarkalowJan 12, 2010
  22. Junio C HamanoJan 13, 2010
  23. 17/18 object.c: remove unused functionsJunio C Hamano, Jan 12, 2010
  24. 18/18 symlinks.c: remove unused functionsJunio C Hamano, Jan 12, 2010

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.