Skip to content

Commit 4373506

Browse files
committed
Fix the build errors
1 parent 406f5ac commit 4373506

File tree

4 files changed

+215
-218
lines changed

4 files changed

+215
-218
lines changed

libraries/BLE/src/BLECharacteristic.cpp

Lines changed: 55 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -50,42 +50,38 @@ BLECharacteristic::BLECharacteristic(BLECharacteristicImp *characteristicImp,
5050
_value_size = characteristicImp->valueSize();
5151
}
5252

53-
BLECharacteristic::BLECharacteristic(const BLECharacteristic& rhs)
54-
{
55-
unsigned char *_value = (unsigned char*)malloc(rhs._value_size);
56-
if (_value)
57-
{
58-
memcpy(_value, rhs._value, rhs._value_size);
59-
_value_size = rhs._value_size;
60-
memcpy(_uuid_cstr, rhs._uuid_cstr, sizeof(_uuid_cstr));
61-
_properties = rhs._properties;
62-
_event_handlers = rhs._event_handlers;
63-
_internal = rhs._internal;
64-
_bledev = BLEDevice(&rhs._bledev);
65-
}
66-
}
67-
68-
BLECharacteristic& BLECharacteristic::operator= (const BLECharacteristic& rhs)
53+
BLECharacteristic::BLECharacteristic(const BLECharacteristic& rhs):
54+
_value(NULL),
55+
_event_handlers(NULL)
6956
{
70-
if (this != &rhs)
57+
_chrc_local_imp = NULL; // Not copy
58+
_value_size = rhs._value_size;
59+
_internal = rhs._internal;
60+
_bledev = BLEDevice(&rhs._bledev);
61+
memcpy(_uuid_cstr, rhs._uuid_cstr, sizeof(_uuid_cstr));
62+
_properties = rhs._properties;
63+
64+
if (rhs._internal == NULL)
7165
{
72-
if (_value)
66+
if (rhs._value != NULL)
7367
{
74-
free(_value);
68+
_value = (unsigned char*)malloc(rhs._value_size);
69+
if (NULL != _value)
70+
{
71+
memcpy(_value, rhs._value, rhs._value_size);
72+
}
73+
7574
}
76-
_value = (unsigned char*)malloc(rhs._value_size);
77-
if (_value)
75+
76+
if (rhs._event_handlers != NULL)
7877
{
79-
memcpy(_value, rhs._value, rhs._value_size);
80-
_value_size = rhs._value_size;
81-
memcpy(_uuid_cstr, rhs._uuid_cstr, sizeof(_uuid_cstr));
82-
_properties = rhs._properties;
83-
_event_handlers = rhs._event_handlers;
84-
_internal = rhs._internal;
85-
_bledev = BLEDevice(&rhs._bledev);
78+
_event_handlers = (BLECharacteristicEventHandler*)malloc(sizeof(BLECharacteristicEventHandler) * BLECharacteristicEventLast);
79+
80+
if (NULL != _event_handlers)
81+
memcpy(_event_handlers, rhs._event_handlers, (sizeof(BLECharacteristicEventHandler) * BLECharacteristicEventLast));
8682
}
8783
}
88-
return *this;
84+
//return *this;
8985
}
9086

9187
BLECharacteristic::~BLECharacteristic()
@@ -165,50 +161,46 @@ BLECharacteristic::operator bool() const
165161

166162
BLECharacteristic& BLECharacteristic::operator= (const BLECharacteristic& chrc)
167163
{
168-
memcpy(_uuid_cstr, chrc._uuid_cstr, sizeof(_uuid_cstr));
169-
_bledev.setAddress(*chrc._bledev.bt_le_address());
170-
_internal = chrc._internal;
171-
_chrc_local_imp = NULL; // Not copy
172-
_properties = chrc._properties;
173-
174-
if (_value_size < chrc._value_size)
164+
if (this != &chrc)
175165
{
176-
_value_size = chrc._value_size;
177-
if (NULL != _value)
178-
{
179-
free(_value);
180-
_value = NULL;
181-
}
166+
memcpy(_uuid_cstr, chrc._uuid_cstr, sizeof(_uuid_cstr));
167+
_bledev.setAddress(*chrc._bledev.bt_le_address());
168+
_internal = chrc._internal;
169+
_chrc_local_imp = NULL; // Not copy
170+
_properties = chrc._properties;
182171

183-
if (NULL != _event_handlers)
172+
if (_value_size < chrc._value_size)
184173
{
185-
free(_event_handlers);
186-
_event_handlers = NULL;
187-
}
188-
}
189-
190-
if (_internal == NULL)
191-
{
192-
if (chrc._value != NULL)
193-
{
194-
if (NULL == _value)
195-
_value = (unsigned char*) malloc(_value_size);
196-
174+
_value_size = chrc._value_size;
197175
if (NULL != _value)
198-
memcpy(_value, chrc._value, chrc._value_size);
176+
{
177+
free(_value);
178+
_value = NULL;
179+
}
199180
}
200181

201-
if (chrc._event_handlers != NULL)
182+
if (_internal == NULL)
202183
{
203-
if (NULL == _event_handlers)
204-
_event_handlers = (BLECharacteristicEventHandler*)malloc(sizeof(BLECharacteristicEventHandler) * BLECharacteristicEventLast);
184+
if (chrc._value != NULL)
185+
{
186+
if (NULL == _value)
187+
_value = (unsigned char*) malloc(_value_size);
188+
189+
if (NULL != _value)
190+
memcpy(_value, chrc._value, chrc._value_size);
191+
}
192+
193+
if (chrc._event_handlers != NULL)
194+
{
195+
if (NULL == _event_handlers)
196+
_event_handlers = (BLECharacteristicEventHandler*)malloc(sizeof(BLECharacteristicEventHandler) * BLECharacteristicEventLast);
197+
198+
if (NULL != _event_handlers)
199+
memcpy(_event_handlers, chrc._event_handlers, (sizeof(BLECharacteristicEventHandler) * BLECharacteristicEventLast));
200+
}
205201

206-
if (NULL != _event_handlers)
207-
memcpy(_event_handlers, chrc._event_handlers, (sizeof(BLECharacteristicEventHandler) * BLECharacteristicEventLast));
208202
}
209-
210203
}
211-
212204
return *this;
213205
}
214206

libraries/BLE/src/BLECharacteristic.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,6 @@ class BLECharacteristic: public BLEAttributeWithValue
8686

8787
BLECharacteristic(const BLECharacteristic&);
8888

89-
BLECharacteristic& operator=(const BLECharacteristic&);
90-
9189
virtual ~BLECharacteristic();
9290

9391
/**

libraries/BLE/src/BLEDescriptor.cpp

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -83,18 +83,25 @@ BLEDescriptor& BLEDescriptor::operator= (const BLEDescriptor& rhs)
8383
{
8484
if (this != &rhs)
8585
{
86-
if (_value)
86+
memcpy(_uuid_cstr, rhs._uuid_cstr, sizeof(_uuid_cstr));
87+
_properties = rhs._properties;
88+
_bledev = BLEDevice(&rhs._bledev);
89+
if (_value_size < rhs._value_size)
8790
{
88-
free(_value);
91+
_value_size = rhs._value_size;
92+
93+
if (NULL != _value)
94+
free(_value);
95+
_value = (unsigned char*)malloc(_value_size);
8996
}
90-
_value = (unsigned char*)malloc(rhs._value_size);
91-
if (_value)
97+
98+
if (NULL != _value)
9299
{
93100
memcpy(_value, rhs._value, rhs._value_size);
94-
_value_size = rhs._value_size;
95-
memcpy(_uuid_cstr, rhs._uuid_cstr, sizeof(_uuid_cstr));
96-
_properties = rhs._properties;
97-
_bledev = BLEDevice(&rhs._bledev);
101+
}
102+
else
103+
{
104+
_value_size = 0;
98105
}
99106
}
100107
return *this;

0 commit comments

Comments
 (0)