/** * Vprintf to a new PP_Var. * @param[in] format A print format string. * @param[in] va_list The printf arguments. * @return A new PP_Var. */ static struct PP_Var VprintfToVar(const char* format, va_list args) { struct PP_Var var; char* string = VprintfToNewString(format, args); var = g_ppb_var->VarFromUtf8(string, strlen(string)); free(string); return var; }
/** * Printf to a newly allocated C string. * @param[in] format A print format string. * @param[in] ... The printf arguments. * @return The newly constructed string. Caller takes ownership. */ char* PrintfToNewString(const char* format, ...) { va_list args; char* result; va_start(args, format); result = VprintfToNewString(format, args); va_end(args); return result; }
/** * Printf to a new PP_Var. * @param[in] format A print format string. * @param[in] ... The printf arguments. * @return A new PP_Var. */ struct PP_Var PrintfToVar(const char* format, ...) { if (ppb_var_interface != NULL) { char* string; va_list args; struct PP_Var var; va_start(args, format); string = VprintfToNewString(format, args); va_end(args); var = ppb_var_interface->VarFromUtf8(string, strlen(string)); free(string); return var; } return PP_MakeUndefined(); }