mbed library sources modified for open wear

Dependents:   openwear-lifelogger-example

Fork of mbed-src by mbed official

Files at this revision

API Documentation at this revision

Comitter:
mbed_official
Date:
Wed Aug 27 04:00:07 2014 +0100
Parent:
299:7557d401dbc3
Child:
301:55638feb26a4
Commit message:
Synchronized with git revision d20ce634877d7038c1c2a25adb030fd56c156e33

Full URL: https://github.com/mbedmicro/mbed/commit/d20ce634877d7038c1c2a25adb030fd56c156e33/

[Common] Fixed crash issue in RawSerial::printf for uARM

Changed in this revision

common/RawSerial.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/common/RawSerial.cpp	Wed Aug 27 03:45:07 2014 +0100
+++ b/common/RawSerial.cpp	Wed Aug 27 04:00:07 2014 +0100
@@ -47,6 +47,13 @@
 int RawSerial::printf(const char *format, ...) {
     std::va_list arg;
     va_start(arg, format);
+#if defined(__MICROLIB) && defined(__ARMCC_VERSION) // with microlib and ARM compiler
+    char *temp;
+    temp = (char*)alloca(STRING_STACK_LIMIT);
+    vsprintf(temp, format, arg);
+    puts(temp);
+    int len = strlen(temp);
+#else
     int len = vsnprintf(NULL, 0, format, arg);
     if (len < STRING_STACK_LIMIT) {
         char temp[STRING_STACK_LIMIT];
@@ -58,6 +65,7 @@
         puts(temp);
         delete[] temp;
     }
+#endif
     va_end(arg);
     return len;
 }