diff options
Diffstat (limited to 'meta/recipes-core/busybox/busybox/find-get-rid-of-nested-functions.patch')
-rw-r--r-- | meta/recipes-core/busybox/busybox/find-get-rid-of-nested-functions.patch | 117 |
1 files changed, 0 insertions, 117 deletions
diff --git a/meta/recipes-core/busybox/busybox/find-get-rid-of-nested-functions.patch b/meta/recipes-core/busybox/busybox/find-get-rid-of-nested-functions.patch deleted file mode 100644 index d66ef79cf0..0000000000 --- a/meta/recipes-core/busybox/busybox/find-get-rid-of-nested-functions.patch +++ /dev/null @@ -1,117 +0,0 @@ -Upstream-Status: Accepted - -commit 6db5f679a21342249e6a6eb06ec70a337bf0d0b0 -Author: Denys Vlasenko <vda.linux@googlemail.com> -Date: Thu May 16 18:36:42 2013 +0200 - -find:: get rid of nested function (it's a gcc-ism) - -function old new delta -alloc_action - 80 +80 -parse_params 1459 1445 -14 -static.alloc_action 98 - -98 - -(add/remove: 1/1 grow/shrink: 0/1 up/down: 80/-112) Total: -32 bytes - -Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> - -diff --git a/findutils/find.c b/findutils/find.c -index d4b7c8e..af913cc 100644 ---- a/findutils/find.c -+++ b/findutils/find.c -@@ -815,6 +815,31 @@ static const char* plus_minus_num(const char* str) - } - #endif - -+/* Say no to GCCism */ -+#define USE_NESTED_FUNCTION 0 -+ -+#if !USE_NESTED_FUNCTION -+struct pp_locals { -+ action*** appp; -+ unsigned cur_group; -+ unsigned cur_action; -+ IF_FEATURE_FIND_NOT( bool invert_flag; ) -+}; -+static action* alloc_action(struct pp_locals *ppl, int sizeof_struct, action_fp f) -+{ -+ action *ap = xzalloc(sizeof_struct); -+ action **app; -+ action ***group = &ppl->appp[ppl->cur_group]; -+ *group = app = xrealloc(*group, (ppl->cur_action+2) * sizeof(ppl->appp[0][0])); -+ app[ppl->cur_action++] = ap; -+ app[ppl->cur_action] = NULL; -+ ap->f = f; -+ IF_FEATURE_FIND_NOT( ap->invert = ppl->invert_flag; ) -+ IF_FEATURE_FIND_NOT( ppl->invert_flag = 0; ) -+ return ap; -+} -+#endif -+ - static action*** parse_params(char **argv) - { - enum { -@@ -901,10 +926,18 @@ static action*** parse_params(char **argv) - IF_FEATURE_FIND_MAXDEPTH("-mindepth\0""-maxdepth\0") - ; - -+#if !USE_NESTED_FUNCTION -+ struct pp_locals ppl; -+#define appp (ppl.appp ) -+#define cur_group (ppl.cur_group ) -+#define cur_action (ppl.cur_action ) -+#define invert_flag (ppl.invert_flag) -+#define ALLOC_ACTION(name) (action_##name*)alloc_action(&ppl, sizeof(action_##name), (action_fp) func_##name) -+#else - action*** appp; -- unsigned cur_group = 0; -- unsigned cur_action = 0; -- IF_FEATURE_FIND_NOT( bool invert_flag = 0; ) -+ unsigned cur_group; -+ unsigned cur_action; -+ IF_FEATURE_FIND_NOT( bool invert_flag; ) - - /* This is the only place in busybox where we use nested function. - * So far more standard alternatives were bigger. */ -@@ -913,7 +946,7 @@ static action*** parse_params(char **argv) - action* alloc_action(int sizeof_struct, action_fp f) - { - action *ap; -- appp[cur_group] = xrealloc(appp[cur_group], (cur_action+2) * sizeof(*appp)); -+ appp[cur_group] = xrealloc(appp[cur_group], (cur_action+2) * sizeof(appp[0][0])); - appp[cur_group][cur_action++] = ap = xzalloc(sizeof_struct); - appp[cur_group][cur_action] = NULL; - ap->f = f; -@@ -921,9 +954,12 @@ static action*** parse_params(char **argv) - IF_FEATURE_FIND_NOT( invert_flag = 0; ) - return ap; - } -- - #define ALLOC_ACTION(name) (action_##name*)alloc_action(sizeof(action_##name), (action_fp) func_##name) -+#endif - -+ cur_group = 0; -+ cur_action = 0; -+ IF_FEATURE_FIND_NOT( invert_flag = 0; ) - appp = xzalloc(2 * sizeof(appp[0])); /* appp[0],[1] == NULL */ - - while (*argv) { -@@ -988,7 +1024,7 @@ static action*** parse_params(char **argv) - dbg("%d", __LINE__); - /* start new OR group */ - cur_group++; -- appp = xrealloc(appp, (cur_group+2) * sizeof(*appp)); -+ appp = xrealloc(appp, (cur_group+2) * sizeof(appp[0])); - /*appp[cur_group] = NULL; - already NULL */ - appp[cur_group+1] = NULL; - cur_action = 0; -@@ -1246,6 +1282,9 @@ static action*** parse_params(char **argv) - dbg("exiting %s", __func__); - return appp; - #undef ALLOC_ACTION -+#undef appp -+#undef cur_action -+#undef invert_flag - } - - int find_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; |