From ff973e16391c720c2a982c970a128dfbd7bc02a1 Mon Sep 17 00:00:00 2001 From: Shawn A Date: Tue, 30 Jan 2018 13:47:13 -0600 Subject: [PATCH] clean up parameters --- WiFiManager.cpp | 21 ++++++++------------- WiFiManager.h | 6 ++++-- 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/WiFiManager.cpp b/WiFiManager.cpp index 00af662..cabc7b5 100644 --- a/WiFiManager.cpp +++ b/WiFiManager.cpp @@ -36,6 +36,10 @@ WiFiManagerParameter::WiFiManagerParameter(const char *id, const char *placehold } void WiFiManagerParameter::init(const char *id, const char *placeholder, const char *defaultValue, int length, const char *custom, int labelPlacement) { + + _max_params = WIFI_MANAGER_MAX_PARAMS; + _params = (WiFiManagerParameter**)malloc(_max_params * sizeof(WiFiManagerParameter*)); + _id = id; _placeholder = placeholder; _length = length; @@ -55,6 +59,10 @@ WiFiManagerParameter::~WiFiManagerParameter() { if (_value != NULL) { delete[] _value; } + if (_params != NULL){ + DEBUG_WM(F("freeing allocated params!")); + free(_params); + } } const char* WiFiManagerParameter::getValue() { @@ -76,7 +84,6 @@ const char* WiFiManagerParameter::getCustomHTML() { return _customHTML; } - bool WiFiManager::addParameter(WiFiManagerParameter *p) { if(_paramsCount + 1 > _max_params){ // rezise the params array @@ -107,24 +114,12 @@ WiFiManager::WiFiManager():_debugPort(Serial) { if(_debug) debugPlatformInfo(); _usermode = WiFi.getMode(); WiFi.persistent(false); // disable persistent so scannetworks and mode switching do not cause overwrites - - // parameters - _max_params = WIFI_MANAGER_MAX_PARAMS; - _params = (WiFiManagerParameter**)malloc(_max_params * sizeof(WiFiManagerParameter*)); - } // destructor WiFiManager::~WiFiManager() { if(_userpersistent) WiFi.persistent(true); // reenable persistent, there is no getter we rely on _userpersistent WiFi.mode(_usermode); - - // parameters - if (_params != NULL){ - DEBUG_WM(F("freeing allocated params!")); - free(_params); - } - DEBUG_WM(F("unloading")); } diff --git a/WiFiManager.h b/WiFiManager.h index 15ae705..40977e3 100644 --- a/WiFiManager.h +++ b/WiFiManager.h @@ -201,7 +201,6 @@ class WiFiManager boolean _sta_show_static_fields = false; // option parameters - int _paramsCount = 0; int _minimumQuality = -1; boolean _removeDuplicateAPs = true; boolean _shouldBreakAfterConfig = false; @@ -271,7 +270,10 @@ class WiFiManager void (*_savecallback)(void) = NULL; Stream& _debugPort; // debug output stream ref - int _max_params; + + //WiFiManagerParameter + int _paramsCount = 0; + int _max_params; WiFiManagerParameter** _params; template