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

Re: Expose subprojects as special files to "git diff" machinery

From
Linus Torvalds <torvalds@linux-foundation.org>
Date
Apr 15, 2007, 19:05 UTC
Message-ID
<Pine.LNX.4.64.0704151204320.5473@woody.linux-foundation.org>
In-Reply-To
<20070415190119.GA21786@uranus.ravnborg.org>
On Sun, 15 Apr 2007, Sam Ravnborg wrote:
Show 10 quoted lines
> >  
> > +static int diff_populate_gitlink(struct diff_filespec *s, int size_only)
> > +{
> > +	int len;
> > +	char *data = xmalloc(100);
> > +	len = snprintf(data, 100,
> > +		"Subproject commit %s\n", sha1_to_hex(s->sha1));
> 
> In userland I would use a local variable for an array of the size of 100.
> I would normally only allocate when we are say 5x bigger.

We're _returning_ the pointer to the caller, so no, we cannot use an automatic array.

But I do think I had a bug - I think I should have set
	s->should_free = 1;

to let the caller know it should be free'd with free(), and not leak the thing.

		Linus
Previous: Sam RavnborgNext: Sam Ravnborg
Message 3 of 12 in “Expose subprojects as special files to "git diff" machinery”
  1. Linus TorvaldsApr 15, 2007
  2. Sam RavnborgApr 15, 2007
  3. Linus TorvaldsApr 15, 2007
  4. Sam RavnborgApr 15, 2007
  5. Andy ParkinsApr 15, 2007
  6. Linus TorvaldsApr 15, 2007
  7. git-format-patch for binary files / merges [Re: Expose subprojects as special files to "git diff" machinery]Sam Vilain, Apr 18, 2007
  8. Alex RiesenApr 18, 2007
  9. Johannes SchindelinApr 18, 2007
  10. Linus TorvaldsApr 18, 2007
  11. Junio C HamanoApr 18, 2007
  12. Johannes SchindelinApr 19, 2007

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.