diff --git a/fakegen.rb b/fakegen.rb index 2b1f842..f223dee 100644 --- a/fakegen.rb +++ b/fakegen.rb @@ -17,10 +17,14 @@ end def output_constants putd "#define FFF_MAX_ARGS (#{$MAX_ARGS}u)" putd "#ifndef FFF_ARG_HISTORY_LEN" - putd " #define FFF_ARG_HISTORY_LEN (#{$DEFAULT_ARG_HISTORY}u)" + indent { + putd "#define FFF_ARG_HISTORY_LEN (#{$DEFAULT_ARG_HISTORY}u)" + } putd "#endif" putd "#ifndef FFF_CALL_HISTORY_LEN" - putd " #define FFF_CALL_HISTORY_LEN (#{$MAX_CALL_HISTORY}u)" + indent { + putd "#define FFF_CALL_HISTORY_LEN (#{$MAX_CALL_HISTORY}u)" + } putd "#endif" end @@ -54,21 +58,27 @@ end def define_return_sequence_helper putd "#define SET_RETURN_SEQ(FUNCNAME, ARRAY_POINTER, ARRAY_LEN) \\" - putd " FUNCNAME##_fake.return_val_seq = ARRAY_POINTER; \\" - putd " FUNCNAME##_fake.return_val_seq_len = ARRAY_LEN;" + indent { + putd "FUNCNAME##_fake.return_val_seq = ARRAY_POINTER; \\" + putd "FUNCNAME##_fake.return_val_seq_len = ARRAY_LEN;" + } end def define_custom_fake_sequence_helper putd "#define SET_CUSTOM_FAKE_SEQ(FUNCNAME, ARRAY_POINTER, ARRAY_LEN) \\" - putd " FUNCNAME##_fake.custom_fake_seq = ARRAY_POINTER; \\" - putd " FUNCNAME##_fake.custom_fake_seq_len = ARRAY_LEN;" + indent { + putd "FUNCNAME##_fake.custom_fake_seq = ARRAY_POINTER; \\" + putd "FUNCNAME##_fake.custom_fake_seq_len = ARRAY_LEN;" + } end def define_reset_fake_macro putd "" putd "/* Defining a function to reset a fake function */" putd "#define RESET_FAKE(FUNCNAME) { \\" - putd " FUNCNAME##_reset(); \\" + indent { + putd "FUNCNAME##_reset(); \\" + } putd "} \\" putd "" end @@ -76,94 +86,126 @@ end def define_declare_arg_helper putd "" putd "#define DECLARE_ARG(type, n, FUNCNAME) \\" - putd " type arg##n##_val; \\" - putd " type arg##n##_history[FFF_ARG_HISTORY_LEN];" + indent { + putd "type arg##n##_val; \\" + putd "type arg##n##_history[FFF_ARG_HISTORY_LEN];" + } end def define_declare_all_func_common_helper putd "" putd "#define DECLARE_ALL_FUNC_COMMON \\" - putd " unsigned int call_count; \\" - putd " unsigned int arg_history_len;\\" - putd " unsigned int arg_histories_dropped; \\" + indent { + putd "unsigned int call_count; \\" + putd "unsigned int arg_history_len;\\" + putd "unsigned int arg_histories_dropped; \\" + } end def define_save_arg_helper putd "" putd "#define SAVE_ARG(FUNCNAME, n) \\" - putd " memcpy((void*)&FUNCNAME##_fake.arg##n##_val, (void*)&arg##n, sizeof(arg##n));" + indent { + putd "memcpy((void*)&FUNCNAME##_fake.arg##n##_val, (void*)&arg##n, sizeof(arg##n));" + } end def define_room_for_more_history putd "" putd "#define ROOM_FOR_MORE_HISTORY(FUNCNAME) \\" - putd " FUNCNAME##_fake.call_count < FFF_ARG_HISTORY_LEN" + indent { + putd "FUNCNAME##_fake.call_count < FFF_ARG_HISTORY_LEN" + } end def define_save_arg_history_helper putd "" putd "#define SAVE_ARG_HISTORY(FUNCNAME, ARGN) \\" - putd " memcpy((void*)&FUNCNAME##_fake.arg##ARGN##_history[FUNCNAME##_fake.call_count], (void*)&arg##ARGN, sizeof(arg##ARGN));" + indent { + putd "memcpy((void*)&FUNCNAME##_fake.arg##ARGN##_history[FUNCNAME##_fake.call_count], (void*)&arg##ARGN, sizeof(arg##ARGN));" + } end def define_history_dropped_helper putd "" putd "#define HISTORY_DROPPED(FUNCNAME) \\" - putd " FUNCNAME##_fake.arg_histories_dropped++" + indent { + putd "FUNCNAME##_fake.arg_histories_dropped++" + } end def define_value_function_variables_helper putd "" putd "#define DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \\" - putd " RETURN_TYPE return_val; \\" - putd " int return_val_seq_len; \\" - putd " int return_val_seq_idx; \\" - putd " RETURN_TYPE * return_val_seq; \\" + indent { + putd "RETURN_TYPE return_val; \\" + putd "int return_val_seq_len; \\" + putd "int return_val_seq_idx; \\" + putd "RETURN_TYPE * return_val_seq; \\" + } end def define_custom_fake_seq_variables_helper putd "" putd "#define DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \\" - putd " int custom_fake_seq_len; \\" - putd " int custom_fake_seq_idx; \\" + indent { + putd "int custom_fake_seq_len; \\" + putd "int custom_fake_seq_idx; \\" + } end def define_increment_call_count_helper putd "" putd "#define INCREMENT_CALL_COUNT(FUNCNAME) \\" - putd " FUNCNAME##_fake.call_count++" + indent { + putd "FUNCNAME##_fake.call_count++" + } end def define_return_fake_result_helper putd "" putd "#define RETURN_FAKE_RESULT(FUNCNAME) \\" - putd " if (FUNCNAME##_fake.return_val_seq_len){ /* then its a sequence */ \\" - putd " if(FUNCNAME##_fake.return_val_seq_idx < FUNCNAME##_fake.return_val_seq_len) { \\" - putd " return FUNCNAME##_fake.return_val_seq[FUNCNAME##_fake.return_val_seq_idx++]; \\" - putd " } \\" - putd " return FUNCNAME##_fake.return_val_seq[FUNCNAME##_fake.return_val_seq_len-1]; /* return last element */ \\" - putd " } \\" - putd " return FUNCNAME##_fake.return_val; \\" + indent { + putd "if (FUNCNAME##_fake.return_val_seq_len){ /* then its a sequence */ \\" + indent { + putd "if(FUNCNAME##_fake.return_val_seq_idx < FUNCNAME##_fake.return_val_seq_len) { \\" + indent { + putd "return FUNCNAME##_fake.return_val_seq[FUNCNAME##_fake.return_val_seq_idx++]; \\" + } + putd "} \\" + putd "return FUNCNAME##_fake.return_val_seq[FUNCNAME##_fake.return_val_seq_len-1]; /* return last element */ \\" + } + putd "} \\" + putd "return FUNCNAME##_fake.return_val; \\" + } end def define_extern_c_helper putd "" putd "#ifdef __cplusplus" - putd " #define FFF_EXTERN_C extern \"C\"{" - putd " #define FFF_END_EXTERN_C } " + indent { + putd "#define FFF_EXTERN_C extern \"C\"{" + putd "#define FFF_END_EXTERN_C } " + } putd "#else /* ansi c */" - putd " #define FFF_EXTERN_C " - putd " #define FFF_END_EXTERN_C " + indent { + putd "#define FFF_EXTERN_C " + putd "#define FFF_END_EXTERN_C " + } putd "#endif /* cpp/ansi c */" end def define_reset_fake_helper putd "" putd "#define DEFINE_RESET_FUNCTION(FUNCNAME) \\" - putd " void FUNCNAME##_reset(){ \\" - putd " memset(&FUNCNAME##_fake, 0, sizeof(FUNCNAME##_fake)); \\" - putd " FUNCNAME##_fake.arg_history_len = FFF_ARG_HISTORY_LEN;\\" - putd " }" + indent { + putd "void FUNCNAME##_reset(){ \\" + indent { + putd "memset(&FUNCNAME##_fake, 0, sizeof(FUNCNAME##_fake)); \\" + putd "FUNCNAME##_fake.arg_history_len = FFF_ARG_HISTORY_LEN;\\" + } + putd "}" + } end # ------ End Helper macros ------ # @@ -182,6 +224,12 @@ def popd $current_depth = $current_depth - 4 end +def indent + pushd + yield + popd +end + def output_macro(arg_count, has_varargs, is_value_function) vararg_name = has_varargs ? "_VARARG" : "" @@ -193,34 +241,34 @@ def output_macro(arg_count, has_varargs, is_value_function) putd "" output_macro_header(declare_macro_name, saved_arg_count, has_varargs, return_type) - pushd + indent { extern_c { # define argument capture variables output_variables(saved_arg_count, has_varargs, is_value_function) } - popd + } putd "" output_macro_header(define_macro_name, saved_arg_count, has_varargs, return_type) - pushd + indent { extern_c { putd "FUNCNAME##_Fake FUNCNAME##_fake;\\" putd function_signature(saved_arg_count, has_varargs, is_value_function) + "{ \\" - pushd + indent { output_function_body(saved_arg_count, has_varargs, is_value_function) - popd + } putd "} \\" putd "DEFINE_RESET_FUNCTION(FUNCNAME) \\" } - popd + } putd "" output_macro_header(fake_macro_name, saved_arg_count, has_varargs, return_type) - pushd + indent { putd macro_signature_for(declare_macro_name, saved_arg_count, has_varargs, return_type) putd macro_signature_for(define_macro_name, saved_arg_count, has_varargs, return_type) putd "" - popd + } end def output_macro_header(macro_name, arg_count, has_varargs, return_type) @@ -250,10 +298,6 @@ def macro_signature_for(macro_name, arg_count, has_varargs, return_type) parameter_list end -def output_argument_capture_variables(argN) - putd " DECLARE_ARG(ARG#{argN}_TYPE, #{argN}, FUNCNAME) \\" -end - def output_variables(arg_count, has_varargs, is_value_function) in_struct{ arg_count.times { |argN| @@ -309,37 +353,51 @@ end def output_function_body(arg_count, has_varargs, is_value_function) arg_count.times { |i| putd "SAVE_ARG(FUNCNAME, #{i}); \\" } putd "if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\\" - arg_count.times { |i| putd " SAVE_ARG_HISTORY(FUNCNAME, #{i}); \\" } + indent { + arg_count.times { |i| putd "SAVE_ARG_HISTORY(FUNCNAME, #{i}); \\" } + } putd "}\\" putd "else{\\" - putd " HISTORY_DROPPED(FUNCNAME);\\" + indent { + putd "HISTORY_DROPPED(FUNCNAME);\\" + } putd "}\\" putd "INCREMENT_CALL_COUNT(FUNCNAME); \\" putd "REGISTER_CALL(FUNCNAME); \\" if has_varargs putd "if(FUNCNAME##_fake.custom_fake){\\" - putd " RETURN_TYPE ret;\\" if is_value_function - putd " va_list ap;\\" - putd " va_start(ap, arg#{arg_count-1});\\" + indent { + putd "RETURN_TYPE ret;\\" if is_value_function + putd "va_list ap;\\" + putd "va_start(ap, arg#{arg_count-1});\\" + } custom_fake_call = "FUNCNAME##_fake.custom_fake(#{arg_list(arg_count)}, ap);" - if is_value_function - putd " ret = #{custom_fake_call}\\" - else - putd " #{custom_fake_call}\\" - end - putd " va_end(ap);\\" - putd " return ret;\\" if is_value_function + indent { + if is_value_function + putd "ret = #{custom_fake_call}\\" + else + putd "#{custom_fake_call}\\" + end + putd "va_end(ap);\\" + putd "return ret;\\" if is_value_function + } putd "}\\" else return_type = is_value_function ? "return " : "" putd "if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \\" - putd " if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \\" - putd " #{return_type}FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](#{arg_list(arg_count)}); \\" - putd " } \\" - putd " else{ \\" - putd " #{return_type}FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](#{arg_list(arg_count)}); \\" - putd " } \\" + indent { + putd "if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \\" + indent { + putd "#{return_type}FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](#{arg_list(arg_count)}); \\" + } + putd "} \\" + putd "else{ \\" + indent { + putd "#{return_type}FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](#{arg_list(arg_count)}); \\" + } + putd "} \\" + } putd "} \\" putd "if (FUNCNAME##_fake.custom_fake) #{return_type}FUNCNAME##_fake.custom_fake(#{arg_list(arg_count)}); \\" end @@ -349,15 +407,19 @@ end def output_reset_function(arg_count, is_value_function) putd "void FUNCNAME##_reset(){ \\" - putd " memset(&FUNCNAME##_fake, 0, sizeof(FUNCNAME##_fake)); \\" - putd " FUNCNAME##_fake.arg_history_len = FFF_ARG_HISTORY_LEN;\\" + indent { + putd "memset(&FUNCNAME##_fake, 0, sizeof(FUNCNAME##_fake)); \\" + putd "FUNCNAME##_fake.arg_history_len = FFF_ARG_HISTORY_LEN;\\" + } putd "} \\" end def define_fff_globals putd "typedef struct { " - putd " void * call_history[FFF_CALL_HISTORY_LEN];" - putd " unsigned int call_history_idx;" + indent { + putd "void * call_history[FFF_CALL_HISTORY_LEN];" + putd "unsigned int call_history_idx;" + } putd "} fff_globals_t;" putd "" putd "FFF_EXTERN_C \\" @@ -365,30 +427,38 @@ def define_fff_globals putd "FFF_END_EXTERN_C \\" putd "" putd "#define DEFINE_FFF_GLOBALS \\" - putd " FFF_EXTERN_C \\" - putd " fff_globals_t fff; \\" - putd " FFF_END_EXTERN_C" + indent { + putd "FFF_EXTERN_C \\" + indent { + putd "fff_globals_t fff; \\" + } + putd "FFF_END_EXTERN_C" + } putd "" putd "#define FFF_RESET_HISTORY() fff.call_history_idx = 0;" putd "" putd "#define REGISTER_CALL(function) \\" - putd " if(fff.call_history_idx < FFF_CALL_HISTORY_LEN) \\" - putd " fff.call_history[fff.call_history_idx++] = (void *)function;" + indent { + putd "if(fff.call_history_idx < FFF_CALL_HISTORY_LEN) \\" + indent { + putd "fff.call_history[fff.call_history_idx++] = (void *)function;" + } + } end def extern_c putd "FFF_EXTERN_C \\" - pushd + indent { yield - popd + } putd "FFF_END_EXTERN_C \\" end def in_struct putd "typedef struct FUNCNAME##_Fake { \\" - pushd - yield - popd + indent { + yield + } putd "} FUNCNAME##_Fake;\\" end diff --git a/fff.h b/fff.h index 85db589..3a8f9ab 100644 --- a/fff.h +++ b/fff.h @@ -34,15 +34,15 @@ SOFTWARE. #define FFF_ARG_HISTORY_LEN (50u) #endif #ifndef FFF_CALL_HISTORY_LEN - #define FFF_CALL_HISTORY_LEN (50u) + #define FFF_CALL_HISTORY_LEN (50u) #endif /* -- INTERNAL HELPER MACROS -- */ #define SET_RETURN_SEQ(FUNCNAME, ARRAY_POINTER, ARRAY_LEN) \ - FUNCNAME##_fake.return_val_seq = ARRAY_POINTER; \ - FUNCNAME##_fake.return_val_seq_len = ARRAY_LEN; + FUNCNAME##_fake.return_val_seq = ARRAY_POINTER; \ + FUNCNAME##_fake.return_val_seq_len = ARRAY_LEN; #define SET_CUSTOM_FAKE_SEQ(FUNCNAME, ARRAY_POINTER, ARRAY_LEN) \ - FUNCNAME##_fake.custom_fake_seq = ARRAY_POINTER; \ - FUNCNAME##_fake.custom_fake_seq_len = ARRAY_LEN; + FUNCNAME##_fake.custom_fake_seq = ARRAY_POINTER; \ + FUNCNAME##_fake.custom_fake_seq_len = ARRAY_LEN; /* Defining a function to reset a fake function */ #define RESET_FAKE(FUNCNAME) { \ @@ -63,7 +63,7 @@ SOFTWARE. memcpy((void*)&FUNCNAME##_fake.arg##n##_val, (void*)&arg##n, sizeof(arg##n)); #define ROOM_FOR_MORE_HISTORY(FUNCNAME) \ - FUNCNAME##_fake.call_count < FFF_ARG_HISTORY_LEN + FUNCNAME##_fake.call_count < FFF_ARG_HISTORY_LEN #define SAVE_ARG_HISTORY(FUNCNAME, ARGN) \ memcpy((void*)&FUNCNAME##_fake.arg##ARGN##_history[FUNCNAME##_fake.call_count], (void*)&arg##ARGN, sizeof(arg##ARGN)); @@ -125,8 +125,8 @@ FFF_END_EXTERN_C \ #define FFF_RESET_HISTORY() fff.call_history_idx = 0; #define REGISTER_CALL(function) \ - if(fff.call_history_idx < FFF_CALL_HISTORY_LEN) \ - fff.call_history[fff.call_history_idx++] = (void *)function; + if(fff.call_history_idx < FFF_CALL_HISTORY_LEN) \ + fff.call_history[fff.call_history_idx++] = (void *)function; #define DECLARE_FAKE_VOID_FUNC0(FUNCNAME) \ FFF_EXTERN_C \ @@ -3181,7 +3181,7 @@ FFF_END_EXTERN_C \ if(FUNCNAME##_fake.custom_fake){\ va_list ap;\ va_start(ap, arg0);\ - FUNCNAME##_fake.custom_fake(arg0, ap);\ + FUNCNAME##_fake.custom_fake(arg0, ap);\ va_end(ap);\ }\ } \ @@ -3225,7 +3225,7 @@ FFF_END_EXTERN_C \ if(FUNCNAME##_fake.custom_fake){\ va_list ap;\ va_start(ap, arg1);\ - FUNCNAME##_fake.custom_fake(arg0, arg1, ap);\ + FUNCNAME##_fake.custom_fake(arg0, arg1, ap);\ va_end(ap);\ }\ } \ @@ -3272,7 +3272,7 @@ FFF_END_EXTERN_C \ if(FUNCNAME##_fake.custom_fake){\ va_list ap;\ va_start(ap, arg2);\ - FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, ap);\ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, ap);\ va_end(ap);\ }\ } \ @@ -3322,7 +3322,7 @@ FFF_END_EXTERN_C \ if(FUNCNAME##_fake.custom_fake){\ va_list ap;\ va_start(ap, arg3);\ - FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, ap);\ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, ap);\ va_end(ap);\ }\ } \ @@ -3375,7 +3375,7 @@ FFF_END_EXTERN_C \ if(FUNCNAME##_fake.custom_fake){\ va_list ap;\ va_start(ap, arg4);\ - FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, ap);\ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, ap);\ va_end(ap);\ }\ } \ @@ -3431,7 +3431,7 @@ FFF_END_EXTERN_C \ if(FUNCNAME##_fake.custom_fake){\ va_list ap;\ va_start(ap, arg5);\ - FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, ap);\ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, ap);\ va_end(ap);\ }\ } \ @@ -3490,7 +3490,7 @@ FFF_END_EXTERN_C \ if(FUNCNAME##_fake.custom_fake){\ va_list ap;\ va_start(ap, arg6);\ - FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, ap);\ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, ap);\ va_end(ap);\ }\ } \ @@ -3552,7 +3552,7 @@ FFF_END_EXTERN_C \ if(FUNCNAME##_fake.custom_fake){\ va_list ap;\ va_start(ap, arg7);\ - FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ap);\ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ap);\ va_end(ap);\ }\ } \ @@ -3617,7 +3617,7 @@ FFF_END_EXTERN_C \ if(FUNCNAME##_fake.custom_fake){\ va_list ap;\ va_start(ap, arg8);\ - FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ap);\ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ap);\ va_end(ap);\ }\ } \ @@ -3685,7 +3685,7 @@ FFF_END_EXTERN_C \ if(FUNCNAME##_fake.custom_fake){\ va_list ap;\ va_start(ap, arg9);\ - FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ap);\ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ap);\ va_end(ap);\ }\ } \ @@ -3756,7 +3756,7 @@ FFF_END_EXTERN_C \ if(FUNCNAME##_fake.custom_fake){\ va_list ap;\ va_start(ap, arg10);\ - FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, ap);\ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, ap);\ va_end(ap);\ }\ } \ @@ -3830,7 +3830,7 @@ FFF_END_EXTERN_C \ if(FUNCNAME##_fake.custom_fake){\ va_list ap;\ va_start(ap, arg11);\ - FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, ap);\ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, ap);\ va_end(ap);\ }\ } \ @@ -3907,7 +3907,7 @@ FFF_END_EXTERN_C \ if(FUNCNAME##_fake.custom_fake){\ va_list ap;\ va_start(ap, arg12);\ - FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, ap);\ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, ap);\ va_end(ap);\ }\ } \ @@ -3987,7 +3987,7 @@ FFF_END_EXTERN_C \ if(FUNCNAME##_fake.custom_fake){\ va_list ap;\ va_start(ap, arg13);\ - FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, ap);\ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, ap);\ va_end(ap);\ }\ } \ @@ -4070,7 +4070,7 @@ FFF_END_EXTERN_C \ if(FUNCNAME##_fake.custom_fake){\ va_list ap;\ va_start(ap, arg14);\ - FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, ap);\ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, ap);\ va_end(ap);\ }\ } \ @@ -4156,7 +4156,7 @@ FFF_END_EXTERN_C \ if(FUNCNAME##_fake.custom_fake){\ va_list ap;\ va_start(ap, arg15);\ - FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, ap);\ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, ap);\ va_end(ap);\ }\ } \ @@ -4245,7 +4245,7 @@ FFF_END_EXTERN_C \ if(FUNCNAME##_fake.custom_fake){\ va_list ap;\ va_start(ap, arg16);\ - FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, ap);\ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, ap);\ va_end(ap);\ }\ } \ @@ -4337,7 +4337,7 @@ FFF_END_EXTERN_C \ if(FUNCNAME##_fake.custom_fake){\ va_list ap;\ va_start(ap, arg17);\ - FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, ap);\ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, ap);\ va_end(ap);\ }\ } \ @@ -4432,7 +4432,7 @@ FFF_END_EXTERN_C \ if(FUNCNAME##_fake.custom_fake){\ va_list ap;\ va_start(ap, arg18);\ - FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, ap);\ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, ap);\ va_end(ap);\ }\ } \