Skip to content

Commit 71fab4c

Browse files
committed
Save some space by removing unnecessary NULL checks before delete/free()
There is no need to check against NULL before calling delete operator or free(). Also setting the pointers to NULL in destructors is not needed.
1 parent 4cb48c0 commit 71fab4c

11 files changed

+69
-137
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
text data bss dec hex filename
2-
7464 0 0 7464 1d28 m2mnsdlinterface.cpp.o (ex ./build/frdm-k64f-armcc/source/mbed-client.ar)
2+
7434 0 0 7434 1d0a m2mnsdlinterface.cpp.o (ex ./build/frdm-k64f-armcc/source/mbed-client.ar)
33
2054 0 0 2054 806 m2mreporthandler.cpp.o (ex ./build/frdm-k64f-armcc/source/mbed-client.ar)
44
1974 0 0 1974 7b6 m2mstring.cpp.o (ex ./build/frdm-k64f-armcc/source/mbed-client.ar)
55
1225 0 0 1225 4c9 m2mserver.cpp.o (ex ./build/frdm-k64f-armcc/source/mbed-client.ar)
66
4147 0 0 4147 1033 m2minterfaceimpl.cpp.o (ex ./build/frdm-k64f-armcc/source/mbed-client.ar)
7-
3144 0 0 3144 c48 m2mresource.cpp.o (ex ./build/frdm-k64f-armcc/source/mbed-client.ar)
7+
3128 0 0 3128 c38 m2mresource.cpp.o (ex ./build/frdm-k64f-armcc/source/mbed-client.ar)
88
2163 0 0 2163 873 m2mtlvdeserializer.cpp.o (ex ./build/frdm-k64f-armcc/source/mbed-client.ar)
9-
2013 0 0 2013 7dd m2mbase.cpp.o (ex ./build/frdm-k64f-armcc/source/mbed-client.ar)
9+
1983 0 0 1983 7bf m2mbase.cpp.o (ex ./build/frdm-k64f-armcc/source/mbed-client.ar)
1010
252 4 0 256 100 nsdlaccesshelper.cpp.o (ex ./build/frdm-k64f-armcc/source/mbed-client.ar)
1111
4078 0 0 4078 fee m2mobjectinstance.cpp.o (ex ./build/frdm-k64f-armcc/source/mbed-client.ar)
1212
2707 0 0 2707 a93 m2mobject.cpp.o (ex ./build/frdm-k64f-armcc/source/mbed-client.ar)
1313
1672 0 1560 3232 ca0 m2mconstants.cpp.o (ex ./build/frdm-k64f-armcc/source/mbed-client.ar)
14-
2433 4 0 2437 985 m2mdevice.cpp.o (ex ./build/frdm-k64f-armcc/source/mbed-client.ar)
15-
1946 4 0 1950 79e m2mfirmware.cpp.o (ex ./build/frdm-k64f-armcc/source/mbed-client.ar)
14+
2429 4 0 2433 981 m2mdevice.cpp.o (ex ./build/frdm-k64f-armcc/source/mbed-client.ar)
15+
1942 4 0 1946 79a m2mfirmware.cpp.o (ex ./build/frdm-k64f-armcc/source/mbed-client.ar)
1616
272 0 0 272 110 m2minterfacefactory.cpp.o (ex ./build/frdm-k64f-armcc/source/mbed-client.ar)
17-
1402 0 0 1402 57a m2msecurity.cpp.o (ex ./build/frdm-k64f-armcc/source/mbed-client.ar)
18-
1593 0 0 1593 639 m2mtlvserializer.cpp.o (ex ./build/frdm-k64f-armcc/source/mbed-client.ar)
19-
2414 0 0 2414 96e m2mresourceinstance.cpp.o (ex ./build/frdm-k64f-armcc/source/mbed-client.ar)
20-
42953 12 1560 44525 aded (TOTALS)
17+
1382 0 0 1382 566 m2msecurity.cpp.o (ex ./build/frdm-k64f-armcc/source/mbed-client.ar)
18+
1571 0 0 1571 623 m2mtlvserializer.cpp.o (ex ./build/frdm-k64f-armcc/source/mbed-client.ar)
19+
2376 0 0 2376 948 m2mresourceinstance.cpp.o (ex ./build/frdm-k64f-armcc/source/mbed-client.ar)
20+
42789 12 1560 44361 ad49 (TOTALS)

source/m2mbase.cpp

+16-31
Original file line numberDiff line numberDiff line change
@@ -41,20 +41,18 @@ M2MBase& M2MBase::operator=(const M2MBase& other)
4141
_register_uri = other._register_uri;
4242
_uri_path = other._uri_path;
4343
_max_age = other._max_age;
44-
if(_token) {
45-
free(_token);
46-
_token = NULL;
47-
_token_length = 0;
48-
}
44+
45+
free(_token);
46+
_token = NULL;
47+
4948
_token_length = other._token_length;
5049
if(other._token) {
5150
_token = alloc_string_copy(other._token, other._token_length);
5251
}
5352

54-
if(_report_handler) {
55-
delete _report_handler;
56-
_report_handler = NULL;
57-
}
53+
delete _report_handler;
54+
_report_handler = NULL;
55+
5856
if(other._report_handler) {
5957
_report_handler = new M2MReportHandler(*other._report_handler);
6058
}
@@ -121,15 +119,8 @@ M2MBase::M2MBase(const String & resource_name,
121119

122120
M2MBase::~M2MBase()
123121
{
124-
if(_report_handler) {
125-
delete _report_handler;
126-
_report_handler = NULL;
127-
}
128-
if(_token) {
129-
free(_token);
130-
_token = NULL;
131-
_token_length = 0;
132-
}
122+
delete _report_handler;
123+
free(_token);
133124
}
134125

135126
void M2MBase::set_operation(M2MBase::Operation opr)
@@ -188,20 +179,16 @@ void M2MBase::set_under_observation(bool observed,
188179
_report_handler->set_under_observation(observed);
189180
}
190181
} else {
191-
if(_report_handler) {
192-
delete _report_handler;
193-
_report_handler = NULL;
194-
}
182+
delete _report_handler;
183+
_report_handler = NULL;
195184
}
196185
}
197186

198187
void M2MBase::set_observation_token(const uint8_t *token, const uint8_t length)
199188
{
200-
if(_token) {
201-
free(_token);
202-
_token = NULL;
203-
_token_length = 0;
204-
}
189+
free(_token);
190+
_token = NULL;
191+
_token_length = 0;
205192

206193
if( token != NULL && length > 0 ) {
207194
_token = alloc_string_copy((uint8_t *)token, length);
@@ -279,10 +266,8 @@ M2MBase::Observation M2MBase::observation_level() const
279266
void M2MBase::get_observation_token(uint8_t *&token, uint32_t &token_length)
280267
{
281268
token_length = 0;
282-
if(token) {
283-
free(token);
284-
token = NULL;
285-
}
269+
free(token);
270+
286271
token = alloc_string_copy((uint8_t *)_token, _token_length);
287272
if(token) {
288273
token_length = _token_length;

source/m2mdevice.cpp

+2-4
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,8 @@ M2MDevice* M2MDevice::get_instance()
3535

3636
void M2MDevice::delete_instance()
3737
{
38-
if(_instance) {
39-
delete _instance;
40-
_instance = NULL;
41-
}
38+
delete _instance;
39+
_instance = NULL;
4240
}
4341

4442
M2MDevice::M2MDevice()

source/m2mfirmware.cpp

+2-4
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,8 @@ M2MFirmware* M2MFirmware::get_instance()
3434

3535
void M2MFirmware::delete_instance()
3636
{
37-
if(_instance) {
38-
delete _instance;
39-
_instance = NULL;
40-
}
37+
delete _instance;
38+
_instance = NULL;
4139
}
4240

4341
M2MFirmware::M2MFirmware()

source/m2mnsdlinterface.cpp

+7-23
Original file line numberDiff line numberDiff line change
@@ -73,34 +73,20 @@ M2MNsdlInterface::~M2MNsdlInterface()
7373
{
7474
tr_debug("M2MNsdlInterface::~M2MNsdlInterface() - IN");
7575
if(_resource) {
76-
if(_resource->resource_parameters_ptr) {
77-
memory_free(_resource->resource_parameters_ptr);
78-
_resource->resource_parameters_ptr = NULL;
79-
}
76+
memory_free(_resource->resource_parameters_ptr);
8077
memory_free(_resource);
81-
_resource = NULL;
8278
}
8379
if(_endpoint) {
84-
if(_endpoint->lifetime_ptr) {
85-
memory_free(_endpoint->lifetime_ptr);
86-
_endpoint->lifetime_ptr = NULL;
87-
}
88-
if(_endpoint->location_ptr) {
89-
memory_free(_endpoint->location_ptr);
90-
_endpoint->location_ptr = NULL;
91-
}
80+
memory_free(_endpoint->lifetime_ptr);
81+
memory_free(_endpoint->location_ptr);
9282
memory_free(_endpoint);
93-
_endpoint = NULL;
94-
9583
}
9684
delete _nsdl_exceution_timer;
9785
delete _registration_timer;
9886
_object_list.clear();
9987

100-
if(_server){
101-
delete _server;
102-
_server = NULL;
103-
}
88+
delete _server;
89+
10490
sn_nsdl_destroy(_nsdl_handle);
10591
_nsdl_handle = NULL;
10692
__nsdl_interface = NULL;
@@ -192,10 +178,8 @@ void M2MNsdlInterface::delete_endpoint()
192178
{
193179
tr_debug("M2MNsdlInterface::delete_endpoint()");
194180
if(_endpoint) {
195-
if(_endpoint->lifetime_ptr) {
196-
free(_endpoint->lifetime_ptr);
197-
_endpoint->lifetime_ptr = NULL;
198-
}
181+
free(_endpoint->lifetime_ptr);
182+
199183
memory_free(_endpoint);
200184
_endpoint = NULL;
201185
}

source/m2mobjectinstance.cpp

-1
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,6 @@ M2MObjectInstance::~M2MObjectInstance()
7070
//Free allocated memory for resources.
7171
res = *it;
7272
delete res;
73-
res = NULL;
7473
}
7574
_resource_list.clear();
7675
}

source/m2mreporthandler.cpp

+3-6
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,9 @@ M2MReportHandler::M2MReportHandler(M2MReportObserver &observer)
4545
M2MReportHandler::~M2MReportHandler()
4646
{
4747
tr_debug("M2MReportHandler::~M2MReportHandler()");
48-
if(_pmax_timer) {
49-
delete _pmax_timer;
50-
}
51-
if(_pmin_timer) {
52-
delete _pmin_timer;
53-
}
48+
49+
delete _pmax_timer;
50+
delete _pmin_timer;
5451
}
5552

5653
void M2MReportHandler::set_under_observation(bool observed)

source/m2mresource.cpp

+8-17
Original file line numberDiff line numberDiff line change
@@ -105,14 +105,10 @@ M2MResource::~M2MResource()
105105
//Free allocated memory for resources.
106106
res = *it;
107107
delete res;
108-
res = NULL;
109108
}
110109
_resource_instance_list.clear();
111110
}
112-
if(_delayed_token) {
113-
free(_delayed_token);
114-
_delayed_token = NULL;
115-
}
111+
free(_delayed_token);
116112
}
117113

118114
bool M2MResource::supports_multiple_instances() const
@@ -155,7 +151,6 @@ bool M2MResource::remove_resource_instance(uint16_t inst_id)
155151
// Resource found and deleted.
156152
res = *it;
157153
delete res;
158-
res = NULL;
159154
_resource_instance_list.erase(pos);
160155
success = true;
161156
break;
@@ -567,20 +562,18 @@ sn_coap_hdr_s* M2MResource::handle_post_request(nsdl_s *nsdl,
567562
if(COAP_MSG_CODE_RESPONSE_CHANGED == msg_code) {
568563
tr_debug("M2MResource::handle_post_request - Execute resource function");
569564
execute(exec_params);
570-
if(exec_params) {
571-
delete exec_params;
572-
}
565+
566+
delete exec_params;
573567

574568
if(_delayed_response) {
575569
coap_response->msg_type = COAP_MSG_TYPE_ACKNOWLEDGEMENT;
576570
coap_response->msg_code = COAP_MSG_CODE_EMPTY;
577571
coap_response->msg_id = received_coap_header->msg_id;
578572
if(received_coap_header->token_len) {
579-
if(_delayed_token) {
580-
free(_delayed_token);
581-
_delayed_token = NULL;
582-
_delayed_token_len = 0;
583-
}
573+
574+
free(_delayed_token);
575+
_delayed_token_len = 0;
576+
584577
_delayed_token = alloc_copy(received_coap_header->token_ptr, _delayed_token_len);
585578
if(_delayed_token) {
586579
_delayed_token_len = received_coap_header->token_len;
@@ -626,9 +619,7 @@ M2MResource::M2MExecuteParameter::M2MExecuteParameter()
626619

627620
M2MResource::M2MExecuteParameter::~M2MExecuteParameter()
628621
{
629-
if(_value) {
630-
free(_value);
631-
}
622+
free(_value);
632623
}
633624

634625
uint8_t *M2MResource::M2MExecuteParameter::get_argument_value() const

source/m2mresourceinstance.cpp

+17-28
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,10 @@
2525
M2MResourceInstance& M2MResourceInstance::operator=(const M2MResourceInstance& other)
2626
{
2727
if (this != &other) { // protect against invalid self-assignment
28-
if(_value) {
29-
free(_value);
30-
_value = NULL;
31-
_value_length = 0;
32-
}
28+
29+
free(_value);
30+
_value = NULL;
31+
3332
_value_length = other._value_length;
3433
if(other._value) {
3534
_value = (uint8_t *)alloc_string_copy(other._value, other._value_length);
@@ -107,16 +106,8 @@ M2MResourceInstance::M2MResourceInstance(const String &res_name,
107106

108107
M2MResourceInstance::~M2MResourceInstance()
109108
{
110-
if(_value) {
111-
free(_value);
112-
_value = NULL;
113-
_value_length = 0;
114-
}
115-
if (_function_pointer) {
116-
delete _function_pointer;
117-
_function_pointer = NULL;
118-
}
119-
_resource_callback = NULL;
109+
free(_value);
110+
delete _function_pointer;
120111
}
121112

122113
M2MBase::BaseType M2MResourceInstance::base_type() const
@@ -158,21 +149,20 @@ void M2MResourceInstance::set_execute_function(execute_callback callback)
158149

159150
void M2MResourceInstance::set_execute_function(execute_callback_2 callback)
160151
{
161-
if (_function_pointer) {
162-
delete _function_pointer;
163-
}
152+
delete _function_pointer;
153+
164154
_function_pointer = new FP1<void, void*>(callback);
165155
set_execute_function(execute_callback(_function_pointer, &FP1<void, void*>::call));
166156
}
167157

168158
void M2MResourceInstance::clear_value()
169159
{
170160
tr_debug("M2MResourceInstance::clear_value");
171-
if(_value) {
172-
free(_value);
173-
_value = NULL;
174-
_value_length = 0;
175-
}
161+
162+
free(_value);
163+
_value = NULL;
164+
_value_length = 0;
165+
176166
report();
177167
}
178168

@@ -199,11 +189,10 @@ bool M2MResourceInstance::set_value(const uint8_t *value,
199189
}
200190
if( value != NULL && value_length > 0 ) {
201191
success = true;
202-
if(_value) {
203-
free(_value);
204-
_value = NULL;
205-
_value_length = 0;
206-
}
192+
193+
free(_value);
194+
_value_length = 0;
195+
207196
_value = alloc_string_copy(value, value_length);
208197
if(_value) {
209198
_value_length = value_length;

source/m2msecurity.cpp

-1
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,6 @@ M2MSecurity::M2MSecurity(ServerType ser_type)
8888

8989
M2MSecurity::~M2MSecurity()
9090
{
91-
_server_instance = NULL;
9291
}
9392

9493
M2MResource* M2MSecurity::create_resource(SecurityResource resource, uint32_t value)

source/m2mtlvserializer.cpp

+5-13
Original file line numberDiff line numberDiff line change
@@ -174,19 +174,11 @@ void M2MTLVSerializer::serialize_TILV(uint8_t type, uint16_t id, uint8_t *value,
174174
memcpy(tlv+size+type_length+id_size, length_ptr, length_size);
175175
memcpy(tlv+size+type_length+id_size+length_size, value, value_length);
176176

177-
if(tlv_type) {
178-
free(tlv_type) ;
179-
}
180-
if(length_ptr) {
181-
free(length_ptr);
182-
}
183-
if(id_ptr) {
184-
free(id_ptr);
185-
}
186-
if(data) {
187-
free(data);
188-
data = NULL;
189-
}
177+
free(tlv_type) ;
178+
free(length_ptr);
179+
free(id_ptr);
180+
free(data);
181+
190182
data = tlv;
191183
size += type_length + id_size + length_size + value_length;
192184
}

0 commit comments

Comments
 (0)