Optimize func_get_args() to build packed array
Use specialized functions instead of macros