Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: NWSWeather.cpp
- Revision:
- 13:a9ac9dde4f7f
- Parent:
- 12:d70de07ca914
- Child:
- 14:bcc80874e824
diff -r d70de07ca914 -r a9ac9dde4f7f NWSWeather.cpp --- a/NWSWeather.cpp Thu Nov 26 18:58:29 2015 +0000 +++ b/NWSWeather.cpp Mon Nov 30 02:32:56 2015 +0000 @@ -16,7 +16,13 @@ // #include "NWSWeather.h" -//#define DEBUG "NWS " +#include "Utility.h" // private memory manager +#ifndef UTILITY_H +#define swMalloc malloc // use the standard +#define swFree free +#endif + +#define DEBUG "NWS " // ... // INFO("Stuff to show %d", var); // new-line is automatically appended // @@ -68,7 +74,7 @@ #define WeatherItemCount (sizeof(WeatherData)/sizeof(WeatherData[0])) -NWSWeather::NWSWeather(const char * baseURL) +NWSWeather::NWSWeather(const char * baseURL) : m_baseurl(0) { setAlternateURL(baseURL); } @@ -83,12 +89,12 @@ int n = strlen(baseURL)+1; if (m_baseurl) - free(m_baseurl); - m_baseurl = (char *)malloc(n); + swFree(m_baseurl); + m_baseurl = (char *)swMalloc(n); if (m_baseurl) strncpy(m_baseurl, baseURL, n); else { - ERR("failed to malloc(%d)", n); + ERR("failed to swMalloc(%d)", n); return nomemory; } ClearWeatherRecords(); @@ -105,15 +111,15 @@ HTTPClient http; NWSReturnCode_T retCode = nomemory; char *url = NULL; - char *message = (char *)malloc(responseSize); + char *message = (char *)swMalloc(responseSize); INFO("get(%s)", site); if (!message) - ERR("failed to malloc(%d)", responseSize); + ERR("failed to swMalloc(%d)", responseSize); while (message) { int n = strlen(m_baseurl) + strlen(site) + 5; - url = (char *)malloc(n); + url = (char *)swMalloc(n); if (url) { strcpy(url, m_baseurl); strcat(url, site); @@ -140,16 +146,16 @@ break; } } else { - ERR("failed to malloc(%d)", n); + ERR("failed to swMalloc(%d)", n); retCode = nomemory; break; } } // while(...) but configured with break for only 1 pass. INFO(" ret is %d", retCode); if (url) - free(url); + swFree(url); if (message) - free(message); + swFree(message); INFO(" mem freed."); return retCode; } @@ -229,7 +235,7 @@ break; case isString: if (WeatherData[i].value.sValue) { - free(WeatherData[i].value.sValue); + swFree(WeatherData[i].value.sValue); WeatherData[i].value.sValue = NULL; } WeatherData[i].updated = false; @@ -297,14 +303,16 @@ break; case isString: if (WeatherData[i].value.sValue) - free(WeatherData[i].value.sValue); + swFree(WeatherData[i].value.sValue); n = strlen(p2)+1; - WeatherData[i].value.sValue = (char *)malloc(n); + INFO(" pre- swMalloc"); + WeatherData[i].value.sValue = (char *)swMalloc(n); + INFO(" post-swMalloc"); if (WeatherData[i].value.sValue) { strcpy(WeatherData[i].value.sValue, p2); WeatherData[i].updated = true; } else { - ERR("failed to malloc(%d)", n); + ERR("failed to swMalloc(%d)", n); break; } break;