← Commit list

19802563e

Rob Landley
Rob Landley
2006-05-08
SOURCE BUG Duration: 66s

Subject

The if() is cheaper than the extra function parameter. According to make bloatcheck, this saves 112 bytes on x86...

SOURCE BUG

This commit was genuinely broken at the time (not related to our build system): scripts/config/mkconfigs.c (2005-08-01 - 2006-10-05 arasi) uretilen bbconfigopts.h icine .config satirlarini kacissiz, ham newline'larla gömüyordu - gecerli C degildi, busybox'un kendi bb_mkdep araci bile parse edemiyordu (7d219aab7 ile duzeltildi, mkconfigs shell scripte cevrildi)

→ Bu hatanin tam hikayesini ve duzeltme diffini gor

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

miscutils/hdparm.c+26 -26
@@ -2298,9 +2298,8 @@ static void identify_from_stdin(void)
#endif
/* busybox specific stuff */
-static void parse_opts(int flag, unsigned long *get, unsigned long *set, unsigned long *value, int min, int max)
+static void parse_opts(unsigned long *get, unsigned long *set, unsigned long *value, int min, int max)
{
- if (flag) {
/* noisy is a global var */
if (get) { /* *get is initialized to 0 */
*get = noisy;
@@ -2310,7 +2309,6 @@ static void parse_opts(int flag, unsigned long *get, unsigned long *set, unsigne
*set = 1;
*value = bb_xgetlarg(optarg, 10, min, max);
}
- }
}
#ifdef HDIO_DRIVE_CMD
@@ -2397,47 +2395,49 @@ int hdparm_main(int argc, char **argv)
quiet = 1;
noisy = 0;
}
- parse_opts((c == 'u'), &get_unmask, &set_unmask, &unmask, 0, 1);
- USE_FEATURE_HDPARM_HDIO_GETSET_DMA(parse_opts((c == 'd'), &get_dma, &set_dma, &dma, 0, 9));
- parse_opts((c == 'n'), &get_nowerr, &set_nowerr, &nowerr, 0, 1);
- parse_opts_v3((c == 'p'), &noisy_piomode, &set_piomode, &piomode);
- parse_opts((c == 'r'), &get_readonly, &set_readonly, &readonly, 0, 1);
- parse_opts((c == 'm'), &get_mult, &set_mult, &mult, 0, INT_MAX /*32*/);
- parse_opts((c == 'c'), &get_io32bit, &set_io32bit, &io32bit, 0, INT_MAX /*8*/);
- parse_opts((c == 'k'), &get_keep, &set_keep, &keep, 0, 1);
- parse_opts((c == 'a'), &get_readahead, &set_readahead, &Xreadahead, 0, INT_MAX);
- parse_opts((c == 'B'), &get_apmmode, &set_apmmode, &apmmode, 1, 255);
+ if (c == 'u') parse_opts(&get_unmask, &set_unmask, &unmask, 0, 1);
+ USE_FEATURE_HDPARM_HDIO_GETSET_DMA(if (c == 'd') parse_opts(&get_dma, &set_dma, &dma, 0, 9));
+ if (c == 'n') parse_opts(&get_nowerr, &set_nowerr, &nowerr, 0, 1);
+ parse_opts_v3((c == 'p'),&noisy_piomode, &set_piomode, &piomode);
+ if (c == 'r') parse_opts(&get_readonly, &set_readonly, &readonly, 0, 1);
+ if (c == 'm') parse_opts(&get_mult, &set_mult, &mult, 0, INT_MAX /*32*/);
+ if (c == 'c') parse_opts(&get_io32bit, &set_io32bit, &io32bit, 0, INT_MAX /*8*/);
+ if (c == 'k') parse_opts(&get_keep, &set_keep, &keep, 0, 1);
+ if (c == 'a') parse_opts(&get_readahead, &set_readahead, &Xreadahead, 0, INT_MAX);
+ if (c == 'B') parse_opts(&get_apmmode, &set_apmmode, &apmmode, 1, 255);
do_flush |= do_timings = (c == 't');
do_flush |= do_ctimings = (c == 'T');
#ifdef HDIO_DRIVE_CMD
- parse_opts((c == 'S'), &get_standby, &set_standby, &standby_requested, 0, INT_MAX);
- parse_opts((c == 'D'), &get_defects, &set_defects, &defects, 0, INT_MAX);
- parse_opts((c == 'P'), &get_prefetch, &set_prefetch, &prefetch, 0, INT_MAX);
+ if (c == 'S') parse_opts(&get_standby, &set_standby, &standby_requested, 0, INT_MAX);
+ if (c == 'D') parse_opts(&get_defects, &set_defects, &defects, 0, INT_MAX);
+ if (c == 'P') parse_opts(&get_prefetch, &set_prefetch, &prefetch, 0, INT_MAX);
parse_opts_v3((c == 'X'), &get_xfermode, &set_xfermode, &xfermode_requested);
- parse_opts((c == 'K'), &get_dkeep, &set_dkeep, &prefetch, 0, 1);
- parse_opts((c == 'A'), &get_lookahead, &set_lookahead, &lookahead, 0, 1);
- parse_opts((c == 'L'), &get_doorlock, &set_doorlock, &doorlock, 0, 1);
- parse_opts((c == 'W'), &get_wcache, &set_wcache, &wcache, 0, 1);
+ if (c == 'K') parse_opts(&get_dkeep, &set_dkeep, &prefetch, 0, 1);
+ if (c == 'A') parse_opts(&get_lookahead, &set_lookahead, &lookahead, 0, 1);
+ if (c == 'L') parse_opts(&get_doorlock, &set_doorlock, &doorlock, 0, 1);
+ if (c == 'W') parse_opts(&get_wcache, &set_wcache, &wcache, 0, 1);
parse_opts_v3((c == 'C'), &get_powermode, NULL, NULL);
parse_opts_v2((c == 'y'), &get_standbynow, &set_standbynow);
parse_opts_v2((c == 'Y'), &get_sleepnow, &set_sleepnow);
reread_partn = (c == 'z');
parse_opts_v2((c == 'Z'), &get_seagate, &set_seagate);
#endif
- USE_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF(parse_opts((c == 'U'), NULL, &unregister_hwif, &hwif, 0, INT_MAX));
+ USE_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF(if (c == 'U') parse_opts(NULL, &unregister_hwif, &hwif, 0, INT_MAX));
#ifdef HDIO_GET_QDMA
+ if (c == 'Q') {
#ifdef HDIO_SET_QDMA
- parse_opts((c == 'Q'), &get_dma_q, &set_dma_q, &dma_q, 0, INT_MAX);
+ parse_opts(&get_dma_q, &set_dma_q, &dma_q, 0, INT_MAX);
#else
- parse_opts((c == 'Q'), &get_dma_q, NULL, NULL, 0, 0);
+ parse_opts(&get_dma_q, NULL, NULL, 0, 0);
#endif
+ }
#endif
USE_FEATURE_HDPARM_HDIO_DRIVE_RESET( perform_reset = (c == 'r'));
- USE_FEATURE_HDPARM_HDIO_TRISTATE_HWIF(parse_opts((c == 'x'), NULL, &perform_tristate, &tristate, 0, 1));
- USE_FEATURE_HDPARM_HDIO_TRISTATE_HWIF(parse_opts((c == 'b'), &get_busstate, &set_busstate, &busstate, 0, 2));
+ USE_FEATURE_HDPARM_HDIO_TRISTATE_HWIF(if (c == 'x') parse_opts(NULL, &perform_tristate, &tristate, 0, 1));
+ USE_FEATURE_HDPARM_HDIO_TRISTATE_HWIF(if (c == 'b') parse_opts(&get_busstate, &set_busstate, &busstate, 0, 2));
#if ENABLE_FEATURE_HDPARM_HDIO_SCAN_HWIF
if (c == 'R') {
- parse_opts((c == 'R'), NULL, &scan_hwif, &hwif_data, 0, INT_MAX);
+ parse_opts(NULL, &scan_hwif, &hwif_data, 0, INT_MAX);
hwif_ctrl = bb_xgetlarg((argv[optind]) ? argv[optind] : "", 10, 0, INT_MAX);
hwif_irq = bb_xgetlarg((argv[optind+1]) ? argv[optind+1] : "", 10, 0, INT_MAX);
/* Move past the 2 additional arguments */