mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-11-15 02:29:51 +01:00
Define vasprintf is native, for Blackberry
This commit is contained in:
1 parent
25e03c243c
commit
e584a005ac
1 file changed
+37
@@ -5,6 +5,7 @@
|
||||
#include <cstring>
|
||||
#include <string>
|
||||
#include <sstream>
|
||||
#include <stdarg.h>
|
||||
#include <vector>
|
||||
|
||||
#include "base/basictypes.h"
|
||||
@@ -13,6 +14,42 @@
|
||||
#pragma warning (disable:4996)
|
||||
#endif
|
||||
|
||||
#ifdef BLACKBERRY
|
||||
// QNX Does not have an implementation of vasprintf
|
||||
static inline int vasprintf(char **rResult, const char *aFormat, va_list aAp)
|
||||
{
|
||||
int rVal;
|
||||
char *result;
|
||||
va_list ap;
|
||||
|
||||
result = (char *) malloc(16);
|
||||
if (result == NULL) return -1;
|
||||
|
||||
va_copy(ap, aAp);
|
||||
rVal = vsnprintf(result, 16, aFormat, ap);
|
||||
va_end(ap);
|
||||
|
||||
if (rVal == -1)
|
||||
{
|
||||
free(result);
|
||||
return rVal;
|
||||
}
|
||||
else if (rVal >= 16)
|
||||
{
|
||||
free(result);
|
||||
result = (char *) malloc(rVal + 1);
|
||||
if (result == NULL) return -1;
|
||||
|
||||
va_copy(ap, aAp);
|
||||
rVal = vsnprintf(result, rVal + 1, aFormat, aAp);
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
*rResult = result;
|
||||
return rVal;
|
||||
}
|
||||
#endif
|
||||
|
||||
// Dumb wrapper around itoa, providing a buffer. Declare this on the stack.
|
||||
class ITOA {
|
||||
public:
|
||||
|
||||
Reference in new issue
Block a user