git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jeff King <peff@peff.net>
To: Max Kirillov <max@max630.net>
Cc: Jens Lehmann <Jens.Lehmann@web.de>,
	Duy Nguyen <pclouds@gmail.com>,
	Johannes Schindelin <johannes.schindelin@gmx.de>,
	Heiko Voigt <hvoigt@hvoigt.net>,
	Stefan Beller <sbeller@google.com>,
	Junio C Hamano <gitster@pobox.com>,
	git@vger.kernel.org
Subject: Re: [PATCH v8 1/2] submodule refactor: use git_pathdup_submodule() in add_submodule_odb()
Date: Fri, 11 Sep 2015 03:53:40 -0400	[thread overview]
Message-ID: <20150911075340.GA18917@sigill.intra.peff.net> (raw)
In-Reply-To: <1441922231-18270-2-git-send-email-max@max630.net>

On Fri, Sep 11, 2015 at 12:57:10AM +0300, Max Kirillov wrote:

> diff --git a/submodule.c b/submodule.c
> index 245ed4d..7340069 100644
> --- a/submodule.c
> +++ b/submodule.c
> @@ -119,43 +119,37 @@ void stage_updated_gitmodules(void)
>  
>  static int add_submodule_odb(const char *path)
>  {
> -	struct strbuf objects_directory = STRBUF_INIT;
>  	struct alternate_object_database *alt_odb;
> +	char *objects_directory;

Now that we have strbuf_git_path_submodule(), is there any reason to
switch this away from a strbuf?

That saves us a bunch of strlen calls, and it makes the diff way
shorter. My ulterior motive is that the result also conflicts a lot less
with some patches I'm about to post to harden the malloc and strcpy
calls below.

That would make your patch look something like:

diff --git a/submodule.c b/submodule.c
index 245ed4d..5e5a46f 100644
--- a/submodule.c
+++ b/submodule.c
@@ -122,15 +122,8 @@ static int add_submodule_odb(const char *path)
 	struct strbuf objects_directory = STRBUF_INIT;
 	struct alternate_object_database *alt_odb;
 	int ret = 0;
-	const char *git_dir;
 
-	strbuf_addf(&objects_directory, "%s/.git", path);
-	git_dir = read_gitfile(objects_directory.buf);
-	if (git_dir) {
-		strbuf_reset(&objects_directory);
-		strbuf_addstr(&objects_directory, git_dir);
-	}
-	strbuf_addstr(&objects_directory, "/objects/");
+	strbuf_git_path_submodule(&objects_directory, path, "objects/");
 	if (!is_directory(objects_directory.buf)) {
 		ret = -1;
 		goto done;

-Peff

  reply	other threads:[~2015-09-11  7:53 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-18 21:10 [PATCH v4 0/2] path: implement common_dir handling in git_path_submodule() Max Kirillov
2015-03-18 21:10 ` [PATCH v4 1/2] submodule refactor: use git_path_submodule() in add_submodule_odb() Max Kirillov
2015-03-18 21:10 ` [PATCH v4 2/2] path: implement common_dir handling in git_path_submodule() Max Kirillov
2015-08-03 21:03 ` [PATCH v5 0/2] " Max Kirillov
2015-08-03 21:03   ` [PATCH v5 1/2] submodule refactor: use git_path_submodule() in add_submodule_odb() Max Kirillov
2015-08-03 21:29     ` Junio C Hamano
2015-08-03 21:03   ` [PATCH v5 2/2] path: implement common_dir handling in git_path_submodule() Max Kirillov
2015-08-04 21:51   ` [PATCH v6 0/2] " Max Kirillov
2015-08-04 21:51     ` [PATCH v6 1/2] submodule refactor: use git_path_submodule() in add_submodule_odb() Max Kirillov
2015-08-04 21:51     ` [PATCH v6 2/2] path: implement common_dir handling in git_path_submodule() Max Kirillov
2015-08-04 22:05     ` [PATCH v7 0/2] " Max Kirillov
2015-08-04 22:05       ` [PATCH v7 1/2] submodule refactor: use git_path_submodule() in add_submodule_odb() Max Kirillov
2015-08-18  0:07         ` Stefan Beller
2015-08-04 22:05       ` [PATCH v7 2/2] path: implement common_dir handling in git_path_submodule() Max Kirillov
2015-08-17 23:56         ` Stefan Beller
2015-09-10 21:57       ` [PATCH v8 0/2] Submodule object path Max Kirillov
2015-09-10 21:57         ` [PATCH v8 1/2] submodule refactor: use git_pathdup_submodule() in add_submodule_odb() Max Kirillov
2015-09-11  7:53           ` Jeff King [this message]
2015-09-13 22:26             ` Max Kirillov
2015-09-10 21:57         ` [PATCH v8 2/2] path: implement common_dir handling in git_pathdup_submodule() Max Kirillov
2015-09-11  1:10         ` [PATCH v8 0/2] Submodule object path Junio C Hamano
2015-09-13 22:32           ` Max Kirillov
2015-09-14 18:14             ` Junio C Hamano
2015-09-13 22:17         ` [PATCH v9 " Max Kirillov
2015-09-13 22:17           ` [PATCH v9 1/2] submodule refactor: use strbuf_git_path_submodule() in add_submodule_odb() Max Kirillov
2015-09-14 18:00             ` Junio C Hamano
2015-09-13 22:17           ` [PATCH v9 2/2] path: implement common_dir handling in git_pathdup_submodule() Max Kirillov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150911075340.GA18917@sigill.intra.peff.net \
    --to=peff@peff.net \
    --cc=Jens.Lehmann@web.de \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=hvoigt@hvoigt.net \
    --cc=johannes.schindelin@gmx.de \
    --cc=max@max630.net \
    --cc=pclouds@gmail.com \
    --cc=sbeller@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).