Browse Source

_vfprintf.c: de-obfuscate badly twisted fragment. no code changes.

objdump confirms that I did not mess it up.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
Denys Vlasenko 14 years ago
parent
commit
984e74b6df
1 changed files with 3 additions and 5 deletions
  1. 3 5
      libc/stdio/_vfprintf.c

+ 3 - 5
libc/stdio/_vfprintf.c

@@ -1059,16 +1059,14 @@ int attribute_hidden _ppfs_parsespec(ppfs_t *ppfs)
 		}
 #endif
 #ifdef __UCLIBC_HAS_GLIBC_CUSTOM_PRINTF__
-
 		/* Handle custom arg -- WARNING -- overwrites p!!! */
 		ppfs->conv_num = CONV_custom0;
 		p = _custom_printf_spec;
 		do {
 			if (*p == *fmt) {
-				if ((ppfs->num_data_args
-					 = ((*_custom_printf_arginfo[(int)(p-_custom_printf_spec)])
-						(&(ppfs->info), MAX_ARGS_PER_SPEC, argtype+2)))
-					> MAX_ARGS_PER_SPEC) {
+				printf_arginfo_function *fp = _custom_printf_arginfo[(int)(p - _custom_printf_spec)];
+				ppfs->num_data_args = fp(&(ppfs->info), MAX_ARGS_PER_SPEC, argtype + 2);
+				if (ppfs->num_data_args > MAX_ARGS_PER_SPEC) {
 					break;		/* Error -- too many args! */
 				}
 				goto DONE;