From patchwork Tue Apr 20 13:36:53 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12214361 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B0390C433B4 for ; Tue, 20 Apr 2021 13:37:10 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 7DB5461264 for ; Tue, 20 Apr 2021 13:37:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232443AbhDTNhj (ORCPT ); Tue, 20 Apr 2021 09:37:39 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39956 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232315AbhDTNhh (ORCPT ); Tue, 20 Apr 2021 09:37:37 -0400 Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com [IPv6:2a00:1450:4864:20::333]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B8C6BC06174A for ; Tue, 20 Apr 2021 06:37:05 -0700 (PDT) Received: by mail-wm1-x333.google.com with SMTP id u187so700905wmb.0 for ; Tue, 20 Apr 2021 06:37:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=1gh6beKO2Ck2HziHBLmeE9kWWBXwRqUNXbmryVtBSc8=; b=rrxEmNla83tkovUQq2TVXt+FT9VGC7McS72RZvM4PRBkUbGTIDgtS5qCJt9nPXfrQ5 7FbvG69pSDO9MLqhihqNGdKHD8IQl5MnxhqqMy4Ekh+B3z4fZS5uWUkLb7vGI6xnWj4L EFC3hyWQqI9yau5Ixpqu66mt/Z/ACuGsEZZmt3Tab55vP8z7ul5U4tJvKG/yBRBzmYaP YpXrYBGbKFJrq2o4qgx4PXLPbeR7nQSEifK1EOHTFcGge73cOI5209B65KILmZntHoCW +Q1KKxb+uz0YihJT09NECLFFBE1VehGXmtXk7zASPVxspeRcsdQ2b4Pl6m7P8Hc71Ad7 DceQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=1gh6beKO2Ck2HziHBLmeE9kWWBXwRqUNXbmryVtBSc8=; b=aG982hrvVf40ppTh4X3fMdD8TmgAZcJ4yUZVXqH1VTZXRPWOm9StT8ak1ZBjHKp9Ny jBGemTiplfGOjOP5y8TugBFPu4+MUrydKsfmRdkVGtw+9gqSP1uyVV5KWufAwnipS7gK pe8J19ZXXjKzYT6+bdC96hMqF7L6QL6/7fQCr+72GEIANuu9fPIx2CmmARh8Q+5GFB8Z Nnf1dOESSR3iEJeneyO22g5sFn7m4Mz+RT9kAB2RaZC342bAIzo7RB4vyAsdRgk0+kKr jQJIzkxc5uoMPROs20KuD6xCbiUuhMcJI6FHs5T+g/XT7mKk5To0q89+wNlhepDaxOHm sUAg== X-Gm-Message-State: AOAM531NC+haORGP+XJ+/gcCa5ac0DzSS2FQ8DWnR0HM7DOYZVWTW3gl M8hvAZTPUjlUrJ3beETOj6KrQeJMaHyW3Q== X-Google-Smtp-Source: ABdhPJyAG3bndOv5Dx7ffTBc/jTnywznPG5pOf3GmK/ui+MWBK4N1L38/4CsCcbT3Qcvs3QrpgwiQg== X-Received: by 2002:a1c:6808:: with SMTP id d8mr4597952wmc.147.1618925824319; Tue, 20 Apr 2021 06:37:04 -0700 (PDT) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id c15sm17705518wrr.3.2021.04.20.06.37.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 Apr 2021 06:37:03 -0700 (PDT) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Johannes Schindelin , Jeff King , Taylor Blau , Elijah Newren , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= Subject: [PATCH v2 1/8] tree.c: fix misindentation in parse_tree_gently() Date: Tue, 20 Apr 2021 15:36:53 +0200 Message-Id: X-Mailer: git-send-email 2.31.1.723.ga5d7868e4a In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org The variables declared in parse_tree_gently() had a single space after the TAB. This dates back to their introduction in bd2c39f58f9 ([PATCH] don't load and decompress objects twice with parse_object(), 2005-05-06). Let's fix them to follow the style of the rest of the file. Signed-off-by: Ævar Arnfjörð Bjarmason --- tree.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tree.c b/tree.c index 00958c581e..e9d2bd7ffd 100644 --- a/tree.c +++ b/tree.c @@ -128,9 +128,9 @@ int parse_tree_buffer(struct tree *item, void *buffer, unsigned long size) int parse_tree_gently(struct tree *item, int quiet_on_missing) { - enum object_type type; - void *buffer; - unsigned long size; + enum object_type type; + void *buffer; + unsigned long size; if (item->object.parsed) return 0; From patchwork Tue Apr 20 13:36:54 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12214363 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9AFD9C43460 for ; Tue, 20 Apr 2021 13:37:11 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 6921F6113C for ; Tue, 20 Apr 2021 13:37:11 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232465AbhDTNhl (ORCPT ); Tue, 20 Apr 2021 09:37:41 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39960 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232419AbhDTNhi (ORCPT ); Tue, 20 Apr 2021 09:37:38 -0400 Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com [IPv6:2a00:1450:4864:20::336]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B4672C06174A for ; Tue, 20 Apr 2021 06:37:06 -0700 (PDT) Received: by mail-wm1-x336.google.com with SMTP id o9-20020a1c41090000b029012c8dac9d47so13186556wma.1 for ; Tue, 20 Apr 2021 06:37:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=o18dZx5ODPSOYuJsQ0/hh/CFt8AUBcOmkGfZpCS4ELo=; b=qQtoJladwVFx08K8dmKOdRuMXkNXZE5vIIKTvAJwtEO/Snbgce49ST4ypErlRGKcXg ba+GkjM5P+UfhlB21dOFxzCEgAhw+6ouNjKK22bNWL6yZTS/iyJ0Py8qZ35YEEceFJ7O 1w2CJi8K3+eQcunq2ICQRrRUumBfVhnYJFY7E1A/ZIUTTxd5jO38k8OWnIbypL/sAUBm UXbAhTgVUuItmiQBj9+qhAJNr7Q7AYzN8G8zMI8agDewAfPPap3XUxVXGos/sIBgdn82 2ryv+vWhVR6SBn02LWAfVLtL2Y2BUtp1LCVwoIROJFKC8TNwMasUeit70yqz+xgoPHhy 1+fw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=o18dZx5ODPSOYuJsQ0/hh/CFt8AUBcOmkGfZpCS4ELo=; b=rM9MyS0GjjJOVDoxfzY10h53rNgiwGmMUp79J0UCHQsmy1NoVV+lBP05wXbqlLIJf0 nejXQoLgjLY93Aj03vkGZbv/guhZfBtgRB7nLWE8AVEgfaUxb8pzM0XpwqEx/pR9JaqA 2j39YNHh/CPadd/pG/V5MSPTnyEYOQA7Hfhrqm19+NIgVOJj5yV7HtTTPAcu03PC6ucN 04FFv39Wg8Q2BH//uLrNfbi6vlgK/PjlWlBer6tkJn4ifnIDMOMaUkAmEHlapfHAydpG eu0OYzkqCuFloc7Hq5h5ZYSN9vLZ6UA39hCfSOn99RwTEL9ntABrmhTEZ4yEgDopy018 zV6g== X-Gm-Message-State: AOAM5335DC2sBOnnAlwwuR5Hz+U1c5W6w4ETt5DY7kcia8qRpWH1HoSS MOyL3ZUTqux2dIxHwftZ2jbNKwYd/mfCPQ== X-Google-Smtp-Source: ABdhPJxWy7hFeUXWljb7HfRrChhMg5wtFNxF4XQUAKUxBnxmp7lfL/kb+WyRq/9580ZvIE+FXizUgQ== X-Received: by 2002:a05:600c:4142:: with SMTP id h2mr4599570wmm.87.1618925825177; Tue, 20 Apr 2021 06:37:05 -0700 (PDT) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id c15sm17705518wrr.3.2021.04.20.06.37.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 Apr 2021 06:37:04 -0700 (PDT) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Johannes Schindelin , Jeff King , Taylor Blau , Elijah Newren , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= Subject: [PATCH v2 2/8] object.c: add a utility function for "expected type X, got Y" Date: Tue, 20 Apr 2021 15:36:54 +0200 Message-Id: X-Mailer: git-send-email 2.31.1.723.ga5d7868e4a In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Refactor various "Object X is not Y" error messages so that they use the same message as the long-standing object_as_type() error message. Now we'll consistently report e.g. that we got a commit when we expected a tag, not just that the object is not a tag. Signed-off-by: Ævar Arnfjörð Bjarmason --- builtin/index-pack.c | 9 +++------ combine-diff.c | 3 +-- commit.c | 10 ++++------ merge-recursive.c | 1 + object.c | 25 ++++++++++++++++++++++++- object.h | 5 +++++ tree.c | 7 ++++--- 7 files changed, 42 insertions(+), 18 deletions(-) diff --git a/builtin/index-pack.c b/builtin/index-pack.c index c0e3768c32..eabd9d4677 100644 --- a/builtin/index-pack.c +++ b/builtin/index-pack.c @@ -218,8 +218,8 @@ static int mark_link(struct object *obj, enum object_type type, if (!obj) return -1; - if (type != OBJ_ANY && obj->type != type) - die(_("object type mismatch at %s"), oid_to_hex(&obj->oid)); + if (type != OBJ_ANY) + oid_is_type_or_die(&obj->oid, obj->type, &type); obj->flags |= FLAG_LINK; return 0; @@ -241,10 +241,7 @@ static unsigned check_object(struct object *obj) if (type <= 0) die(_("did not receive expected object %s"), oid_to_hex(&obj->oid)); - if (type != obj->type) - die(_("object %s: expected type %s, found %s"), - oid_to_hex(&obj->oid), - type_name(obj->type), type_name(type)); + oid_is_type_or_die(&obj->oid, obj->type, &type); obj->flags |= FLAG_CHECKED; return 1; } diff --git a/combine-diff.c b/combine-diff.c index 06635f91bc..aa767dbb8e 100644 --- a/combine-diff.c +++ b/combine-diff.c @@ -333,8 +333,7 @@ static char *grab_blob(struct repository *r, free_filespec(df); } else { blob = read_object_file(oid, &type, size); - if (type != OBJ_BLOB) - die("object '%s' is not a blob!", oid_to_hex(oid)); + oid_is_type_or_die(oid, OBJ_BLOB, &type); } return blob; } diff --git a/commit.c b/commit.c index 3580c62b92..3d7f1fba0c 100644 --- a/commit.c +++ b/commit.c @@ -304,9 +304,7 @@ const void *repo_get_commit_buffer(struct repository *r, if (!ret) die("cannot read commit object %s", oid_to_hex(&commit->object.oid)); - if (type != OBJ_COMMIT) - die("expected commit for %s, got %s", - oid_to_hex(&commit->object.oid), type_name(type)); + oid_is_type_or_die(&commit->object.oid, OBJ_COMMIT, &type); if (sizep) *sizep = size; } @@ -494,10 +492,10 @@ int repo_parse_commit_internal(struct repository *r, return quiet_on_missing ? -1 : error("Could not read %s", oid_to_hex(&item->object.oid)); - if (type != OBJ_COMMIT) { + ret = oid_is_type_or_error(&item->object.oid, OBJ_COMMIT, &type); + if (ret) { free(buffer); - return error("Object %s not a commit", - oid_to_hex(&item->object.oid)); + return ret; } ret = parse_commit_buffer(r, item, buffer, size, 0); diff --git a/merge-recursive.c b/merge-recursive.c index 7618303f7b..b952106203 100644 --- a/merge-recursive.c +++ b/merge-recursive.c @@ -2999,6 +2999,7 @@ static int read_oid_strbuf(struct merge_options *opt, if (!buf) return err(opt, _("cannot read object %s"), oid_to_hex(oid)); if (type != OBJ_BLOB) { + const char* msg = oid_is_type_or_die_msg(oid, OBJ_BLOB, &type); free(buf); return err(opt, _("object %s is not a blob"), oid_to_hex(oid)); } diff --git a/object.c b/object.c index 3c962da6c9..9e06c0ee92 100644 --- a/object.c +++ b/object.c @@ -153,6 +153,29 @@ void *create_object(struct repository *r, const struct object_id *oid, void *o) return obj; } +static const char *object_type_mismatch_msg = N_("object %s is a %s, not a %s"); + +void oid_is_type_or_die(const struct object_id *oid, + enum object_type want, + enum object_type *type) +{ + if (want == *type) + return; + die(_(object_type_mismatch_msg), oid_to_hex(oid), + type_name(*type), type_name(want)); +} + +int oid_is_type_or_error(const struct object_id *oid, + enum object_type want, + enum object_type *type) +{ + if (want == *type) + return 0; + return error(_(object_type_mismatch_msg), + oid_to_hex(oid), type_name(*type), + type_name(want)); +} + void *object_as_type(struct object *obj, enum object_type type, int quiet) { if (obj->type == type) @@ -166,7 +189,7 @@ void *object_as_type(struct object *obj, enum object_type type, int quiet) } else { if (!quiet) - error(_("object %s is a %s, not a %s"), + error(_(object_type_mismatch_msg), oid_to_hex(&obj->oid), type_name(obj->type), type_name(type)); return NULL; diff --git a/object.h b/object.h index 85e7491815..f8609a8518 100644 --- a/object.h +++ b/object.h @@ -123,6 +123,11 @@ void *create_object(struct repository *r, const struct object_id *oid, void *obj void *object_as_type(struct object *obj, enum object_type type, int quiet); +void oid_is_type_or_die(const struct object_id *oid, enum object_type want, + enum object_type *type); +int oid_is_type_or_error(const struct object_id *oid, enum object_type want, + enum object_type *type); + /* * Returns the object, having parsed it to find out what it is. * diff --git a/tree.c b/tree.c index e9d2bd7ffd..f1c6e8f647 100644 --- a/tree.c +++ b/tree.c @@ -131,6 +131,7 @@ int parse_tree_gently(struct tree *item, int quiet_on_missing) enum object_type type; void *buffer; unsigned long size; + int ret; if (item->object.parsed) return 0; @@ -139,10 +140,10 @@ int parse_tree_gently(struct tree *item, int quiet_on_missing) return quiet_on_missing ? -1 : error("Could not read %s", oid_to_hex(&item->object.oid)); - if (type != OBJ_TREE) { + ret = oid_is_type_or_error(&item->object.oid, OBJ_TREE, &type); + if (ret) { free(buffer); - return error("Object %s not a tree", - oid_to_hex(&item->object.oid)); + return ret; } return parse_tree_buffer(item, buffer, size); } From patchwork Tue Apr 20 13:36:55 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12214365 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D3DA9C433B4 for ; Tue, 20 Apr 2021 13:37:12 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 9DE6E613AF for ; Tue, 20 Apr 2021 13:37:12 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232506AbhDTNhm (ORCPT ); Tue, 20 Apr 2021 09:37:42 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39968 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232394AbhDTNhk (ORCPT ); Tue, 20 Apr 2021 09:37:40 -0400 Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com [IPv6:2a00:1450:4864:20::331]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 85367C06138A for ; Tue, 20 Apr 2021 06:37:07 -0700 (PDT) Received: by mail-wm1-x331.google.com with SMTP id f195-20020a1c1fcc0000b029012eb88126d7so10025170wmf.3 for ; Tue, 20 Apr 2021 06:37:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=72wMm2mPufVEBlwp9ukij0QhsDbVibOnFSqed0Pqp+M=; b=gXGLFLzqc/LSiBYx4WIABUMS56pegY4wZmQaEjHroQfSuLIB9oR++aPKYXqcCaIwON awtRKWI3OlQLZ7PdI+xUd4DKYN2Z6i23kjMdSQSIANmEniuFSrAJsF4qQG+1Pd0gCwPR n8rwyI/SZkHQIOtHC6g6+2OHZsvOGlPzC+dKvKaLDUfAjKIzPbdD7G7CObOJEaHpIMeJ oaOlxiERn0EWvU6vRDanw4i1shXTCc0tVVBmBGO9Vsanc9bNzmpINGw9O5f042A3Yg7q IIIvvhyuJTjjyj2wn1kg/wXlw5HzLDzb3TKH00ZcGKMi4QW+BF5YwQkd7I0RnPSm1tQj sm3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=72wMm2mPufVEBlwp9ukij0QhsDbVibOnFSqed0Pqp+M=; b=Rs3kz5V9ocWAZ0T3z8c71SSl0rXbZRPlGw7rDOQOYnS9GPoKC7mhODOjiDHJhmp+mY VulGztM5/qxG2TbpGcn+qWTgP02KDy1PyXD8d/1KQbn4pDdASKYyp4PWHmohyl0HYkxa 3wmIfiA37XRaYQyhKd1Ng0W2TAenHEcgQIcNWu234f+LYog2ZqDYBAoRocnO0jMAIHED Dt+6tshCQvhDaRLr/MlysXto4yCdlEHMlZtlnDgvkilVPu5dElSy/qusGUKGpOOi4TzM +7wqaVATgg7NydLjBGZCc9i8N8Tih6MNm/ZDSZc4jpfAuXtY4MSh9wMheGUqUKVPqPPg AWFA== X-Gm-Message-State: AOAM531RvsVPh+KVPPMT5NHko9nIZbcQD+jhdZq8wgR1O1f9y2dXaRPV 5Z4ZAsbS+sy6y1YkqI61/qg2MUVsBgZu9w== X-Google-Smtp-Source: ABdhPJzX5qcV02iNrZ2REYZ+fAmB2253xRS1gVpel8ygeJ15zIbk7svl+/9xMuZNhUWkQvBeMIHulg== X-Received: by 2002:a1c:64c6:: with SMTP id y189mr4700762wmb.36.1618925826009; Tue, 20 Apr 2021 06:37:06 -0700 (PDT) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id c15sm17705518wrr.3.2021.04.20.06.37.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 Apr 2021 06:37:05 -0700 (PDT) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Johannes Schindelin , Jeff King , Taylor Blau , Elijah Newren , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= Subject: [PATCH v2 3/8] object.c: add and use oid_is_type_or_die_msg() function Date: Tue, 20 Apr 2021 15:36:55 +0200 Message-Id: X-Mailer: git-send-email 2.31.1.723.ga5d7868e4a In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Add a oid_is_type_or_die_msg() function to go with the "error" and "die" forms for emitting "expected type X, got Y" messages. This is useful for callers that want the message itself as a char *. Signed-off-by: Ævar Arnfjörð Bjarmason --- merge-recursive.c | 6 ++++-- object.c | 12 ++++++++++++ object.h | 3 +++ 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/merge-recursive.c b/merge-recursive.c index b952106203..c74239544f 100644 --- a/merge-recursive.c +++ b/merge-recursive.c @@ -2999,9 +2999,11 @@ static int read_oid_strbuf(struct merge_options *opt, if (!buf) return err(opt, _("cannot read object %s"), oid_to_hex(oid)); if (type != OBJ_BLOB) { - const char* msg = oid_is_type_or_die_msg(oid, OBJ_BLOB, &type); + char *msg = oid_is_type_or_die_msg(oid, OBJ_BLOB, &type); + int ret = err(opt, msg); free(buf); - return err(opt, _("object %s is not a blob"), oid_to_hex(oid)); + free(msg); + return ret; } strbuf_attach(dst, buf, size, size + 1); return 0; diff --git a/object.c b/object.c index 9e06c0ee92..0f07f976fb 100644 --- a/object.c +++ b/object.c @@ -176,6 +176,18 @@ int oid_is_type_or_error(const struct object_id *oid, type_name(want)); } +char* oid_is_type_or_die_msg(const struct object_id *oid, + enum object_type want, + enum object_type *type) +{ + struct strbuf sb = STRBUF_INIT; + if (want == *type) + BUG("call this just to get the message!"); + strbuf_addf(&sb, _(object_type_mismatch_msg), oid_to_hex(oid), + type_name(*type), type_name(want)); + return strbuf_detach(&sb, NULL); +} + void *object_as_type(struct object *obj, enum object_type type, int quiet) { if (obj->type == type) diff --git a/object.h b/object.h index f8609a8518..7ae6407598 100644 --- a/object.h +++ b/object.h @@ -127,6 +127,9 @@ void oid_is_type_or_die(const struct object_id *oid, enum object_type want, enum object_type *type); int oid_is_type_or_error(const struct object_id *oid, enum object_type want, enum object_type *type); +char* oid_is_type_or_die_msg(const struct object_id *oid, + enum object_type want, + enum object_type *type); /* * Returns the object, having parsed it to find out what it is. From patchwork Tue Apr 20 13:36:56 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12214367 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 065ECC433ED for ; Tue, 20 Apr 2021 13:37:15 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id C0D1F61264 for ; Tue, 20 Apr 2021 13:37:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232558AbhDTNho (ORCPT ); Tue, 20 Apr 2021 09:37:44 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39970 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232449AbhDTNhl (ORCPT ); Tue, 20 Apr 2021 09:37:41 -0400 Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com [IPv6:2a00:1450:4864:20::32d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 68CD6C06174A for ; Tue, 20 Apr 2021 06:37:08 -0700 (PDT) Received: by mail-wm1-x32d.google.com with SMTP id u187so701014wmb.0 for ; Tue, 20 Apr 2021 06:37:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=93JzT/X8Lq9M0rfcmdi54FEWCuPfn1NVdNk8bq0QCJA=; b=twkspK35VC6oIl8zIQHIY1rZb+TR+aeWztCWsJc17AW9mrRUl8HLZ7C8GAw8n3sexD ynFn2ii4FDL8XchrxdEIjoh8CDyWQJcOqBR997hO/6yc8XsYCKiRxO+Uj6B5OOeRiCNA J4/EeT1TeR325HY/wxOaYhcEdTDYVPRYHgmwv0ltL/i15DeIc/wihCf080toDqEmhHbK S/eY9G+TN0NYIblKB25RfMTCqGtVbeADqDaZO9envaaE6ObKuALsoKQ/mf1cVYaNciZ1 UZ50CX0+dkfKRosLYr6xv5VAFhwejKiM5K5Kbsvw2GzD/OC5V/KXICvxaDzLI9HNkEJh uALA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=93JzT/X8Lq9M0rfcmdi54FEWCuPfn1NVdNk8bq0QCJA=; b=kx7dKtCJW7fWD80HGVyA1Y3PL7B1nRrROUzjk7aGN6C/ti2CN8sNF/PmRndo7pPjB+ +Ru4rnN53H5DTkwSKZzE+Cw8rZk14Rk92h4ar1zKTTs/2vdspOcwG4+pttVtPRBNf7jm ZI2/MJI8ItFzfVQg2AwUYuxKvUWvhhOg1bG80YQzpBAqFn0iGRWcMOuzRdC8ONEysuzN SB369pVQIGKqdrnGCNb+0p6zGFprymelQyWTHPBN/fAGFQePhE7eTbHphPvi41OPc6Cz MtN0pq0oaSJ+o1UhObImT76Fh+u7TpCgbGCFnBqcRZsWqAX1p2Cts3gCGuuixceztJsN Jl2w== X-Gm-Message-State: AOAM5311BoFCYd9UG70XrtRJIzgHdIhg+4p6BwUuLlpvecQDXS2+/Xt7 4oZBV0ngiFlsV5/368ZGThHAha6NAw7drA== X-Google-Smtp-Source: ABdhPJxapVvMKvKH6iTTgSQf1pkBjMYWSZ3Qh/vTwTGqF9XZxcJNTTWkqYTeTnuezByMJ/n+ail1iA== X-Received: by 2002:a1c:bd85:: with SMTP id n127mr4542947wmf.37.1618925826958; Tue, 20 Apr 2021 06:37:06 -0700 (PDT) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id c15sm17705518wrr.3.2021.04.20.06.37.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 Apr 2021 06:37:06 -0700 (PDT) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Johannes Schindelin , Jeff King , Taylor Blau , Elijah Newren , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= Subject: [PATCH v2 4/8] commit-graph: use obj->type, not object_as_type() Date: Tue, 20 Apr 2021 15:36:56 +0200 Message-Id: X-Mailer: git-send-email 2.31.1.723.ga5d7868e4a In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Change a check of a deref_tag() return value to just use obj->type instead of object_as_type(). The object_as_type() function is for low-level use by fsck, {commit,tree,blob,tag}.c and the like, here we can just assume the object is fully initialized. As can be seen in plenty of existing uses in our codebase the return value of deref_tag() won't be an obj->type == OBJ_NONE or !obj->parsed. Fixes code added in 2f00c355cb7 (commit-graph: drop COMMIT_GRAPH_WRITE_CHECK_OIDS flag, 2020-05-13). Signed-off-by: Ævar Arnfjörð Bjarmason --- builtin/commit-graph.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/builtin/commit-graph.c b/builtin/commit-graph.c index cd86315221..347d65abc8 100644 --- a/builtin/commit-graph.c +++ b/builtin/commit-graph.c @@ -158,7 +158,7 @@ static int read_one_commit(struct oidset *commits, struct progress *progress, NULL, 0); if (!result) return error(_("invalid object: %s"), hash); - else if (object_as_type(result, OBJ_COMMIT, 1)) + else if (result->type == OBJ_COMMIT) oidset_insert(commits, &result->oid); display_progress(progress, oidset_size(commits)); From patchwork Tue Apr 20 13:36:57 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12214369 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 37311C43460 for ; Tue, 20 Apr 2021 13:37:16 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 1893061264 for ; Tue, 20 Apr 2021 13:37:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232563AbhDTNhq (ORCPT ); Tue, 20 Apr 2021 09:37:46 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39980 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232456AbhDTNhl (ORCPT ); Tue, 20 Apr 2021 09:37:41 -0400 Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com [IPv6:2a00:1450:4864:20::32f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5B314C06138B for ; Tue, 20 Apr 2021 06:37:09 -0700 (PDT) Received: by mail-wm1-x32f.google.com with SMTP id i21-20020a05600c3555b029012eae2af5d4so10629229wmq.4 for ; Tue, 20 Apr 2021 06:37:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=0bBFl4kf5+0rbKyIiArGE95Y14oh/bgCnE+LWpVBfe0=; b=EzRrMh7Jwn44Hz07smuuAlvEWGnD7rt48QCROPpHGqNiyGmbOYBCVWDuClF/Eaa5lX ktLdcxzfC9efl6gCZMvjLcitNRc7rKQP+4jI0SVt+BjGzAowLObG3bP1PRR3VMUpLJIw n+2iVjRZ+QjJtRRDegAOIv/eZsF4hgRSyWQcZAQ2T9oI4S4JADFckTA2bhAXRquWMeLX oS+/UdX2en9inBZfWh+PFcleWOpzXhlJ3iGiJ9j+myNfm1pJkhmVh92+K+opbYAOlkGV B4H2X8HPT2eUB10OVWXPld1Wxf+4KYzWOxuShe4iTlqSlM1aNk2DoBt3xPopV+1YxdWN 6UFQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=0bBFl4kf5+0rbKyIiArGE95Y14oh/bgCnE+LWpVBfe0=; b=O0pGsk2NLRqFr1DFeZyRW/QKQpX5L+jcBG1xt/sLjOARJ+YMyIqJvESiNF1jhJ3e3h LjCEPwKmzx9aIAb0gvaTZXaLvsB0+w4HujteeAwF43eN382CdQBeLOnD4ev2UPeHbnzq vdrPjeW7Pn0lvdu7ULKf0cf+0kd16DtTD8s0l5aokuEG3e6hiYhg/cTIqqV+d4xwMIP0 KFu58eHVAQXWlDqrR2xE4eHwWiFaItLTN8LK05SOxUim8MCZX1eQMkq0PUVodk2JImm5 66HN8A8dXDfSlLA2f+gTeG++9SemUB0QWA2L610Ac1COx4NOEk8a40gO7PCTaXKr/tkL vqZA== X-Gm-Message-State: AOAM530RBaXpyJYssI6kblZx9TjER94w+dzIxfqPYysalLcRzO3At5kz NHPI6ngqfhTx3plX/jtHiIShAI0TQePVCw== X-Google-Smtp-Source: ABdhPJw9ty/ASErzueZmIdcydCAs+kC50qHQlquJxumHQijhsn7oUK7jTCPMb+tf7MKo2ojpnRBm7Q== X-Received: by 2002:a05:600c:410c:: with SMTP id j12mr4508238wmi.112.1618925827863; Tue, 20 Apr 2021 06:37:07 -0700 (PDT) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id c15sm17705518wrr.3.2021.04.20.06.37.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 Apr 2021 06:37:07 -0700 (PDT) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Johannes Schindelin , Jeff King , Taylor Blau , Elijah Newren , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= Subject: [PATCH v2 5/8] branch tests: assert lookup_commit_reference_gently() error Date: Tue, 20 Apr 2021 15:36:57 +0200 Message-Id: X-Mailer: git-send-email 2.31.1.723.ga5d7868e4a In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Assert the exact error returned by lookup_commit_reference_gently() and "branch' itself in the non-quiet mode invoked by branch.c (via parse_opt_commits()). This will be used to assert a subsequent change that changes the lookup_commit_reference_gently() code. Signed-off-by: Ævar Arnfjörð Bjarmason --- t/t3201-branch-contains.sh | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/t/t3201-branch-contains.sh b/t/t3201-branch-contains.sh index 349a810cee..5bd4b05b6e 100755 --- a/t/t3201-branch-contains.sh +++ b/t/t3201-branch-contains.sh @@ -166,7 +166,13 @@ test_expect_success 'implicit --list conflicts with modification options' ' ' test_expect_success 'Assert that --contains only works on commits, not trees & blobs' ' - test_must_fail git branch --contains main^{tree} && + tree=$(git rev-parse main^{tree}) && + test_must_fail git branch --contains main^{tree} 2>actual && + cat >expect <<-EOF && + error: object $tree is a tree, not a commit + error: no such commit main^{tree} + EOF + test_cmp expect actual && blob=$(git hash-object -w --stdin <<-\EOF Some blob EOF From patchwork Tue Apr 20 13:36:58 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12214371 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id DE465C43462 for ; Tue, 20 Apr 2021 13:37:16 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id ADB1B6113C for ; Tue, 20 Apr 2021 13:37:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232575AbhDTNhr (ORCPT ); Tue, 20 Apr 2021 09:37:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39982 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232327AbhDTNhl (ORCPT ); Tue, 20 Apr 2021 09:37:41 -0400 Received: from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com [IPv6:2a00:1450:4864:20::42f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 307E5C06138C for ; Tue, 20 Apr 2021 06:37:10 -0700 (PDT) Received: by mail-wr1-x42f.google.com with SMTP id g9so21620286wrx.0 for ; Tue, 20 Apr 2021 06:37:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=YVl/fdAFBcu4FcDCdYwcbecDDXXYxS1/l1HIZQHJDr4=; b=hlYSf22CqcvneNQnLvSrJRwnzjyb6IHnIrdqrqRWB94dTUwOOZ99yuSkQTjgN0yYDd zWWZy8/Fq9CBQxrTA6tbC6W9HNaEjO9BWgPfGzawqIE0g9qzMulDy+ZG6Wcau9qxiBOL iDRMD0CNT2UrjC4P6QJZkAVBx2EuphUQOEIVC4wh+dDrl+5Amt4YIm9YfJ5DJ34Ezocq 7MQqRoRX6/0EXJXihWGrOZblnyELyvRmEc6gCVcp9cBY9nJiVSs2Km4nf+8MOPGBEuaJ RP2yyZfXF4/+brqkiVfbcszU0W7F1P+UQSGu317dC11XdezQnTHZJMVHpcKcBXT4KVsb 2Eog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=YVl/fdAFBcu4FcDCdYwcbecDDXXYxS1/l1HIZQHJDr4=; b=fPTlUH+7Axp2EICaY5eQhKSpvOC+BsETsTnZ2clLo2+t4529F6I6MsaQyC+b2RPdjo o3YqR7+MoIA66mkDx8/7Z9NYhQ3PD544BbAoiT0GoBUSDjtzqikOtQAYTvz3/dJOiW1S rcFdEf+C/aGC5yFncY/aYI+U7q4bDG9zMCtE3KN6C8X2B/Zq5IQoAjTXhdkq7WbyCq+p vfFUnMti2pxNmwIV2ACAwz1phNg/jyCp9jC+srJYKUXHKcQsb5NeaLlphdLNeqV28WGw miNmSR2mgijWntNOGshxP8F+iGEWNpodG6PkBGYZCOeEaL9FSH001j7jbRZ7H4N4Qv/h 5+AA== X-Gm-Message-State: AOAM530cedgN2JWukbNjLcx4s2R//Av6khsfZ/Uo5uHceoo+2TGzFa9K C7EQGM0HIdmqpeWlKEjuuBCMhUwnIN7wsA== X-Google-Smtp-Source: ABdhPJxmJIX8u03S/HEphTU5rfVAk9QCMxiLXsVd6XuyHIj0MHWcPPZgeHDvhJ2DEjyfd08CW5XMPg== X-Received: by 2002:adf:f948:: with SMTP id q8mr20917619wrr.296.1618925828663; Tue, 20 Apr 2021 06:37:08 -0700 (PDT) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id c15sm17705518wrr.3.2021.04.20.06.37.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 Apr 2021 06:37:08 -0700 (PDT) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Johannes Schindelin , Jeff King , Taylor Blau , Elijah Newren , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= Subject: [PATCH v2 6/8] commit.c: don't use deref_tag() -> object_as_type() Date: Tue, 20 Apr 2021 15:36:58 +0200 Message-Id: X-Mailer: git-send-email 2.31.1.723.ga5d7868e4a In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Change a use of the object_as_type() function introduced in 8ff226a9d5e (add object_as_type helper for casting objects, 2014-07-13) to instead assume that we're not dealing with OBJ_NONE (or OBJ_BAD) from deref_tag(). This makes this code easier to read, as the reader isn't wondering why the function would need to deal with that. We're simply doing a check of OBJ_{COMMIT,TREE,BLOB,TAG} here, not the bare-bones initialization object_as_type() might be called on to do. Even though we can read deref_tag() and see that it won't return OBJ_NONE and friends, let's add a BUG() assertion here to help future maintenance. Signed-off-by: Ævar Arnfjörð Bjarmason --- commit.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/commit.c b/commit.c index 3d7f1fba0c..c3bc6cbec4 100644 --- a/commit.c +++ b/commit.c @@ -31,13 +31,22 @@ const char *commit_type = "commit"; struct commit *lookup_commit_reference_gently(struct repository *r, const struct object_id *oid, int quiet) { - struct object *obj = deref_tag(r, - parse_object(r, oid), - NULL, 0); + struct object *tmp = parse_object(r, oid); + struct object *obj = deref_tag(r, tmp, NULL, 0); if (!obj) return NULL; - return object_as_type(obj, OBJ_COMMIT, quiet); + + if (obj->type <= 0) + BUG("should have initialized obj->type = OBJ_{COMMIT,TREE,BLOB,TAG} from deref_tag()"); + if (obj->type != OBJ_COMMIT) { + if (!quiet) { + enum object_type have = obj->type; + oid_is_type_or_error(oid, OBJ_COMMIT, &have); + } + return NULL; + } + return (struct commit *)obj; } struct commit *lookup_commit_reference(struct repository *r, const struct object_id *oid) From patchwork Tue Apr 20 13:36:59 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12214373 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8DD76C43461 for ; Tue, 20 Apr 2021 13:37:17 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 6187E6113C for ; Tue, 20 Apr 2021 13:37:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232580AbhDTNhr (ORCPT ); Tue, 20 Apr 2021 09:37:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39984 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232496AbhDTNhm (ORCPT ); Tue, 20 Apr 2021 09:37:42 -0400 Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com [IPv6:2a00:1450:4864:20::331]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D8F54C06174A for ; Tue, 20 Apr 2021 06:37:10 -0700 (PDT) Received: by mail-wm1-x331.google.com with SMTP id i21-20020a05600c3555b029012eae2af5d4so10629280wmq.4 for ; Tue, 20 Apr 2021 06:37:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=J8nKbhyzmPQmJXxjli+FyGmf0tQZ6Cy0P+MV4eLSkbM=; b=HtvFkqqhvqhveBRNrdjzJ00TyDojiw8q53WxG5DGXZGeIYTgRtNodYllJa+H/Cqup1 ierupbS8EVjOcsj8wAgdoSDzzPfuq2slWVDqoZtYhVN/VnD4E6TwZcV1E7iaMKwlKt/I QTPOzXem8TBsTCpNPuYouUm5gIachdz5IC9GSKELylV5Co8xV3ErmKX4WhUdRo21J5TI f7xg/YI5mrO+ARL2mzJFamGkmUivqkTdhXYwE2BlxvqAXRpVq8mRV2V9Rh/i/Bs8RzAa ycDgg7yMxLeVDyJkGZFPy2FUgrVX++ZVt2wZrw50/vLt3jhbsVqC19UW0k+d0t2dlYmo MmQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=J8nKbhyzmPQmJXxjli+FyGmf0tQZ6Cy0P+MV4eLSkbM=; b=oFL+EZP6lPbuFPN+7GD8xnUfslHZjw6PxatGccX9RK5URfyasDuZSoRfKRdkhZxlKf luy5fvWpLb7AhbjxUe7JcgftMLz6lKLxwz2PWIE7CWXmwgEp7UgAAlDemI0QB/wkGbre YU7FBuIp1P3PrXaaSUIwsXHcU5dPljQN2CSaMzE6+Hl4MLUIsO2xJS9kuhwU4Tzp/4OC ZHnGv3HRiCKUF/d7hZjm6n1iwxoQpzcl5P1jvBZSbtJ+nYhnKk+W2nm0WHP7yztaq24W 9DAMkBPjEuFPqwT141Llp/hTlx8XP/DuplfuXZREs6ZoxRoxLbo580LU6Tk5y4/CZ1WL ueTg== X-Gm-Message-State: AOAM531SLg3JcWAKyjPagSCn6bZQu3nuT0TP0E2VxUOSHvPwz1G7W56D zNeNPDAa3RRPXlN6RT3Ed55WzCTqGmZnew== X-Google-Smtp-Source: ABdhPJz1aTXJaxpdGERyohrJ92ch00H4ppsdXg9RyFIcXvg0fksDPtp76dbe+4P3PS4GDbAY97bnHg== X-Received: by 2002:a05:600c:3581:: with SMTP id p1mr4424105wmq.35.1618925829420; Tue, 20 Apr 2021 06:37:09 -0700 (PDT) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id c15sm17705518wrr.3.2021.04.20.06.37.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 Apr 2021 06:37:08 -0700 (PDT) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Johannes Schindelin , Jeff King , Taylor Blau , Elijah Newren , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= Subject: [PATCH v2 7/8] object.c: normalize brace style in object_as_type() Date: Tue, 20 Apr 2021 15:36:59 +0200 Message-Id: X-Mailer: git-send-email 2.31.1.723.ga5d7868e4a In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Normalize the brace style in this function introduced in 8ff226a9d5e (add object_as_type helper for casting objects, 2014-07-13) to be in line with the coding style of the project. Signed-off-by: Ævar Arnfjörð Bjarmason --- object.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/object.c b/object.c index 0f07f976fb..f694db7e87 100644 --- a/object.c +++ b/object.c @@ -190,16 +190,15 @@ char* oid_is_type_or_die_msg(const struct object_id *oid, void *object_as_type(struct object *obj, enum object_type type, int quiet) { - if (obj->type == type) + if (obj->type == type) { return obj; - else if (obj->type == OBJ_NONE) { + } else if (obj->type == OBJ_NONE) { if (type == OBJ_COMMIT) init_commit_node((struct commit *) obj); else obj->type = type; return obj; - } - else { + } else { if (!quiet) error(_(object_type_mismatch_msg), oid_to_hex(&obj->oid), From patchwork Tue Apr 20 13:37:00 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12214375 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 111CBC433ED for ; Tue, 20 Apr 2021 13:37:19 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id D3A0361154 for ; Tue, 20 Apr 2021 13:37:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232594AbhDTNhs (ORCPT ); Tue, 20 Apr 2021 09:37:48 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39992 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232394AbhDTNhn (ORCPT ); Tue, 20 Apr 2021 09:37:43 -0400 Received: from mail-wr1-x42e.google.com (mail-wr1-x42e.google.com [IPv6:2a00:1450:4864:20::42e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C1E5BC06174A for ; Tue, 20 Apr 2021 06:37:11 -0700 (PDT) Received: by mail-wr1-x42e.google.com with SMTP id w4so33928055wrt.5 for ; Tue, 20 Apr 2021 06:37:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=S07IAKh9C5bEtSSybcdhmZ98ZotlhpvcLy4S32jMjww=; b=AT93FR3eFiWw8Y0int2o6jTv6qIomrx8Ys9qOsAXzEyhJwdvgIcY14ed7/osYAxcjC RvktdAu2rRIi1BqjJftcaKndoqu7pU6TcExuykX77R2OhxBWsWl9rGfJ3wYwqa4HtK9q kL2k3zfsOuyb5A01OFCVVJKkkm3Vs3EWa8NQOWQ1284nu9SBZpwJsGeIQeuW1i/lSJoK EFIDXlMmQvfHerZQGvG3uPOUNru2OJ24cuFvKFCt2GeBlthif+nJ9epxplNwqGs+ky2T ShEqje4hNAeKc7utHlMTWU/RyD4D9xyJZE+RcrZu5z/GG2B7wOvdlV35fsBk6o8W0Gm1 NZbA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=S07IAKh9C5bEtSSybcdhmZ98ZotlhpvcLy4S32jMjww=; b=VasiksqQeEIP7wBuNAhSU+6aa9PEjJxvhkejBWgh+dvmpsoMvAbgtJdgJZWe/y9sS2 laCsRgOvWBQYOQJbQK9+vQ3IjTgXc2a3XOl9QaP3wwfzo6BlSFLoNUggI/GQ2cmAs0iN Ync+tEKTOiobEkufhWL7IXou5qtdLImCvNVDXVZqC6af23UX787WDjzCTGLxG9HfZ7DZ sMfZtaJQU2wY5Nyxysy0iDWoDtUjGcU858M5VJRUaQSToUGXlFuV6PzBvl5dQ4rUaxXn 2bMhWFNUvDdeEcvlWH/QKILBEKcp7bEKuLhE3mWY4GwiXaXSL9Kg2lZKHd8rqt9y1JOG qfpw== X-Gm-Message-State: AOAM531se6LCReqa/MwJownFyCcRdENohRqEh4iqIxE+qG9dh5EMjPV7 CINEybeejQSv/bWUs9ld0f2RoZXfnay+yQ== X-Google-Smtp-Source: ABdhPJxBAflur/56kN4ykBiz8wlNYRweJLvVuCcht8225ovDD+E3sQbQ4fo/L53WWtkPL4DnvqXgrw== X-Received: by 2002:adf:fe4f:: with SMTP id m15mr20460331wrs.67.1618925830309; Tue, 20 Apr 2021 06:37:10 -0700 (PDT) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id c15sm17705518wrr.3.2021.04.20.06.37.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 Apr 2021 06:37:09 -0700 (PDT) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Johannes Schindelin , Jeff King , Taylor Blau , Elijah Newren , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= Subject: [PATCH v2 8/8] object.c: remove "quiet" parameter from object_as_type() Date: Tue, 20 Apr 2021 15:37:00 +0200 Message-Id: X-Mailer: git-send-email 2.31.1.723.ga5d7868e4a In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Remove the now-unused "quiet" parameter from object_as_type(). As shown in preceding commits the previous users of this parameter were better off with higher-level APIs. The "quiet" parameter was originally introduced when the object_as_type() function was added in 8ff226a9d5e (add object_as_type helper for casting objects,. 2014-07-13), but the commit.c use-case for it is now gone. Signed-off-by: Ævar Arnfjörð Bjarmason --- blob.c | 2 +- builtin/fsck.c | 2 +- commit.c | 2 +- object.c | 9 ++++----- object.h | 2 +- refs.c | 2 +- t/helper/test-reach.c | 2 +- tag.c | 2 +- tree.c | 2 +- 9 files changed, 12 insertions(+), 13 deletions(-) diff --git a/blob.c b/blob.c index 1308299eab..f8d8f0b84e 100644 --- a/blob.c +++ b/blob.c @@ -15,5 +15,5 @@ struct blob *lookup_blob(struct repository *r, const struct object_id *oid) struct object *obj = lookup_object(r, oid); if (!obj) return create_blob(r, oid); - return object_as_type(obj, OBJ_BLOB, 0); + return object_as_type(obj, OBJ_BLOB); } diff --git a/builtin/fsck.c b/builtin/fsck.c index 70ff95837a..5d534cf218 100644 --- a/builtin/fsck.c +++ b/builtin/fsck.c @@ -221,7 +221,7 @@ static void mark_unreachable_referents(const struct object_id *oid) enum object_type type = oid_object_info(the_repository, &obj->oid, NULL); if (type > 0) - object_as_type(obj, type, 0); + object_as_type(obj, type); } options.walk = mark_used; diff --git a/commit.c b/commit.c index c3bc6cbec4..918c7c7a66 100644 --- a/commit.c +++ b/commit.c @@ -76,7 +76,7 @@ struct commit *lookup_commit(struct repository *r, const struct object_id *oid) struct object *obj = lookup_object(r, oid); if (!obj) return create_commit(r, oid); - return object_as_type(obj, OBJ_COMMIT, 0); + return object_as_type(obj, OBJ_COMMIT); } struct commit *lookup_commit_reference_by_name(const char *name) diff --git a/object.c b/object.c index f694db7e87..9f6f36707b 100644 --- a/object.c +++ b/object.c @@ -188,7 +188,7 @@ char* oid_is_type_or_die_msg(const struct object_id *oid, return strbuf_detach(&sb, NULL); } -void *object_as_type(struct object *obj, enum object_type type, int quiet) +void *object_as_type(struct object *obj, enum object_type type) { if (obj->type == type) { return obj; @@ -199,10 +199,9 @@ void *object_as_type(struct object *obj, enum object_type type, int quiet) obj->type = type; return obj; } else { - if (!quiet) - error(_(object_type_mismatch_msg), - oid_to_hex(&obj->oid), - type_name(obj->type), type_name(type)); + error(_(object_type_mismatch_msg), + oid_to_hex(&obj->oid), + type_name(obj->type), type_name(type)); return NULL; } } diff --git a/object.h b/object.h index 7ae6407598..bb65a6cd5a 100644 --- a/object.h +++ b/object.h @@ -121,7 +121,7 @@ struct object *lookup_object(struct repository *r, const struct object_id *oid); void *create_object(struct repository *r, const struct object_id *oid, void *obj); -void *object_as_type(struct object *obj, enum object_type type, int quiet); +void *object_as_type(struct object *obj, enum object_type type); void oid_is_type_or_die(const struct object_id *oid, enum object_type want, enum object_type *type); diff --git a/refs.c b/refs.c index 261fd82beb..7f4ca3441c 100644 --- a/refs.c +++ b/refs.c @@ -341,7 +341,7 @@ enum peel_status peel_object(const struct object_id *name, struct object_id *oid if (o->type == OBJ_NONE) { int type = oid_object_info(the_repository, name, NULL); - if (type < 0 || !object_as_type(o, type, 0)) + if (type < 0 || !object_as_type(o, type)) return PEEL_INVALID; } diff --git a/t/helper/test-reach.c b/t/helper/test-reach.c index cda804ed79..c9fd74b21f 100644 --- a/t/helper/test-reach.c +++ b/t/helper/test-reach.c @@ -67,7 +67,7 @@ int cmd__reach(int ac, const char **av) die("failed to load commit for input %s resulting in oid %s\n", buf.buf, oid_to_hex(&oid)); - c = object_as_type(peeled, OBJ_COMMIT, 0); + c = object_as_type(peeled, OBJ_COMMIT); if (!c) die("failed to load commit for input %s resulting in oid %s\n", diff --git a/tag.c b/tag.c index 1bd81bf1d1..25d79c3db3 100644 --- a/tag.c +++ b/tag.c @@ -109,7 +109,7 @@ struct tag *lookup_tag(struct repository *r, const struct object_id *oid) struct object *obj = lookup_object(r, oid); if (!obj) return create_tag(r, oid); - return object_as_type(obj, OBJ_TAG, 0); + return object_as_type(obj, OBJ_TAG); } static timestamp_t parse_tag_date(const char *buf, const char *tail) diff --git a/tree.c b/tree.c index f1c6e8f647..fd3ad18051 100644 --- a/tree.c +++ b/tree.c @@ -112,7 +112,7 @@ struct tree *lookup_tree(struct repository *r, const struct object_id *oid) struct object *obj = lookup_object(r, oid); if (!obj) return create_tree(r, oid); - return object_as_type(obj, OBJ_TREE, 0); + return object_as_type(obj, OBJ_TREE); } int parse_tree_buffer(struct tree *item, void *buffer, unsigned long size)