]> git.ipfire.org Git - thirdparty/git.git/commitdiff
submodule.h: use a named enum for RECURSE_SUBMODULES_*
authorPhilippe Blain <levraiphilippeblain@gmail.com>
Mon, 4 Apr 2022 17:10:11 +0000 (17:10 +0000)
committerJunio C Hamano <gitster@pobox.com>
Wed, 6 Apr 2022 15:55:19 +0000 (08:55 -0700)
Using a named enum allows casting an integer to the enum type in both
GDB and LLDB:

    $ gdb -q -ex 'b wt-status.c:44' -ex r --args ./git status
    (gdb) p (enum color_wt_status) slot
    $1 = WT_STATUS_ONBRANCH

    $ lldb -o 'b wt-status.c:44' -o r -- ./git status
    (lldb) p (color_wt_status) slot
    (color_wt_status) $0 = WT_STATUS_ONBRANCH

In LLDB, it's also required to cast in the reversed direction, i.e.
cast an enum constant into its corresponding integer:

    (lldb) p (int) color_wt_status::WT_STATUS_ONBRANCH
    (int) $1 = 8

Name the enum listing the different RECURSE_SUBMODULES_* modes, to make
debugging easier. For example, when stepping through a part of the code
where an int is compared with a constant in this enum, it allows casting
the int to the enum type or vice-versa, after quickly checking where the
enum constant is declared and learning the enum name.

As to not make this patch a debug-only change, convert the
'fetch_recurse' member of 'struct submodule' to use the newly named
enum.

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
Reviewed-by: Glen Choo <chooglen@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
submodule-config.h
submodule.h

index 65875b94ea503c4f13fa907ec58f8ae648a7d199..55a4c3e0bd5bf06011b5223b33454c8bc8528037 100644 (file)
@@ -37,7 +37,7 @@ struct submodule {
        const char *path;
        const char *name;
        const char *url;
-       int fetch_recurse;
+       enum submodule_recurse_mode fetch_recurse;
        const char *ignore;
        const char *branch;
        struct submodule_update_strategy update_strategy;
index 6bd2c99fd99d409abd89771d511b3a7db5f47252..55cf6f01d0c71d9506e754afe86d716d3e9fc849 100644 (file)
@@ -13,7 +13,7 @@ struct repository;
 struct string_list;
 struct strbuf;
 
-enum {
+enum submodule_recurse_mode {
        RECURSE_SUBMODULES_ONLY = -5,
        RECURSE_SUBMODULES_CHECK = -4,
        RECURSE_SUBMODULES_ERROR = -3,