Skip to content

Commit 695dc53

Browse files
committed
Memory leak fixed
1 parent 83643ee commit 695dc53

File tree

3 files changed

+313
-5
lines changed

3 files changed

+313
-5
lines changed

CMakeLists.txt

Lines changed: 304 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,304 @@
1+
# cmake_minimum_required(VERSION <specify CMake version here>)
2+
project(Gurux_DLMS_cpp)
3+
4+
set(CMAKE_CXX_STANDARD 14)
5+
6+
include_directories(development/include)
7+
include_directories(GuruxDLMSClientExample/include)
8+
include_directories(GuruxDLMSPushExample/include)
9+
include_directories(GuruxDLMSServerExample/include)
10+
include_directories(mbed/GuruxDLMSClientExample)
11+
12+
add_executable(Gurux_DLMS_cpp
13+
development/include/chipperingenums.h
14+
development/include/enums.h
15+
development/include/errorcodes.h
16+
development/include/GXAdjacentCell.h
17+
development/include/GXAPDU.h
18+
development/include/GXApplicationContextName.h
19+
development/include/GXAttributeCollection.h
20+
development/include/GXAuthentication.h
21+
development/include/GXAuthenticationMechanismName.h
22+
development/include/GXBytebuffer.h
23+
development/include/GXChargePerUnitScaling.h
24+
development/include/GXChargeTable.h
25+
development/include/GXCipher.h
26+
development/include/GXCommodity.h
27+
development/include/GXCreditChargeConfiguration.h
28+
development/include/GXCurrency.h
29+
development/include/GXDataInfo.h
30+
development/include/GXDate.h
31+
development/include/GXDateTime.h
32+
development/include/GXDLMS.h
33+
development/include/GXDLMSAccount.h
34+
development/include/GXDLMSActionItem.h
35+
development/include/GXDLMSActionSchedule.h
36+
development/include/GXDLMSActionSet.h
37+
development/include/GXDLMSActivityCalendar.h
38+
development/include/GXDLMSAssociationLogicalName.h
39+
development/include/GXDLMSAssociationShortName.h
40+
development/include/GXDLMSAttribute.h
41+
development/include/GXDLMSAutoAnswer.h
42+
development/include/GXDLMSAutoConnect.h
43+
development/include/GXDLMSCaptureObject.h
44+
development/include/GXDLMSCertificateInfo.h
45+
development/include/GXDLMSCharge.h
46+
development/include/GXDLMSClient.h
47+
development/include/GXDLMSClock.h
48+
development/include/GXDLMSCompactData.h
49+
development/include/GXDLMSConnectionEventArgs.h
50+
development/include/GXDLMSContextType.h
51+
development/include/GXDLMSConverter.h
52+
development/include/GXDLMSCredit.h
53+
development/include/GXDLMSData.h
54+
development/include/GXDLMSDayProfile.h
55+
development/include/GXDLMSDayProfileAction.h
56+
development/include/GXDLMSDemandRegister.h
57+
development/include/GXDLMSDisconnectControl.h
58+
development/include/GXDLMSEmergencyProfile.h
59+
development/include/GXDLMSExtendedRegister.h
60+
development/include/GXDLMSGPRSSetup.h
61+
development/include/GXDLMSGSMCellInfo.h
62+
development/include/GXDLMSGSMDiagnostic.h
63+
development/include/GXDLMSHdlcSetup.h
64+
development/include/GXDLMSIECOpticalPortSetup.h
65+
development/include/GXDLMSImageActivateInfo.h
66+
development/include/GXDLMSImageTransfer.h
67+
development/include/GXDLMSIp4Setup.h
68+
development/include/GXDLMSIp4SetupIpOption.h
69+
development/include/GXDLMSLimiter.h
70+
development/include/GXDLMSLimits.h
71+
development/include/GXDLMSLNCommandHandler.h
72+
development/include/GXDLMSLNParameters.h
73+
development/include/GXDLMSLongTransaction.h
74+
development/include/GXDLMSMacAddressSetup.h
75+
development/include/GXDLMSMBusClient.h
76+
development/include/GXDLMSMBusMasterPortSetup.h
77+
development/include/GXDLMSMBusSlavePortSetup.h
78+
development/include/GXDLMSMd5.h
79+
development/include/GXDLMSMessageHandler.h
80+
development/include/GXDLMSModemConfiguration.h
81+
development/include/GXDLMSModemInitialisation.h
82+
development/include/GXDLMSMonitoredValue.h
83+
development/include/GXDLMSNotify.h
84+
development/include/GXDLMSObject.h
85+
development/include/GXDLMSObjectCollection.h
86+
development/include/GXDLMSObjectDefinition.h
87+
development/include/GXDLMSObjectFactory.h
88+
development/include/GXDLMSParameterMonitor.h
89+
development/include/GXDLMSPppSetup.h
90+
development/include/GXDLMSPppSetupIPCPOption.h
91+
development/include/GXDLMSPppSetupLcpOption.h
92+
development/include/GXDLMSProfileGeneric.h
93+
development/include/GXDLMSPushObject.h
94+
development/include/GXDLMSPushSetup.h
95+
development/include/GXDLMSQualityOfService.h
96+
development/include/GXDLMSRegister.h
97+
development/include/GXDLMSRegisterActivation.h
98+
development/include/GXDLMSRegisterMonitor.h
99+
development/include/GXDLMSSapAssignment.h
100+
development/include/GXDLMSSchedule.h
101+
development/include/GXDLMSScheduleEntry.h
102+
development/include/GXDLMSScript.h
103+
development/include/GXDLMSScriptAction.h
104+
development/include/GXDLMSScriptTable.h
105+
development/include/GXDLMSSeasonProfile.h
106+
development/include/GXDLMSSecureClient.h
107+
development/include/GXDLMSSecureServer.h
108+
development/include/GXDLMSSecuritySetup.h
109+
development/include/GXDLMSServer.h
110+
development/include/GXDLMSSettings.h
111+
development/include/GXDLMSSha1.h
112+
development/include/GXDLMSSha256.h
113+
development/include/GXDLMSSNCommandHandler.h
114+
development/include/GXDLMSSNParameters.h
115+
development/include/GXDLMSSpecialDay.h
116+
development/include/GXDLMSSpecialDaysTable.h
117+
development/include/GXDLMSTarget.h
118+
development/include/GXDLMSTcpUdpSetup.h
119+
development/include/GXDLMSTokenGateway.h
120+
development/include/GXDLMSTranslator.h
121+
development/include/GXDLMSTranslatorStructure.h
122+
development/include/GXDLMSUtilityTables.h
123+
development/include/GXDLMSValueEventArg.h
124+
development/include/GXDLMSValueEventCollection.h
125+
development/include/GXDLMSVariant.h
126+
development/include/GXDLMSWeekProfile.h
127+
development/include/GXHelpers.h
128+
development/include/GXReplyData.h
129+
development/include/GXSecure.h
130+
development/include/GXSerialNumberCounter.h
131+
development/include/GXServerReply.h
132+
development/include/GXSNInfo.h
133+
development/include/GXStandardObisCode.h
134+
development/include/GXStandardObisCodeCollection.h
135+
development/include/GXTime.h
136+
development/include/GXTokenGatewayConfiguration.h
137+
development/include/GXUnitCharge.h
138+
development/include/IGXDLMSBase.h
139+
development/include/OBiscodes.h
140+
development/include/TranslatorGeneralTags.h
141+
development/include/TranslatorSimpleTags.h
142+
development/include/TranslatorStandardTags.h
143+
development/include/TranslatorTags.h
144+
development/src/GXAdjacentCell.cpp
145+
development/src/GXAPDU.cpp
146+
development/src/GXApplicationContextName.cpp
147+
development/src/GXAuthenticationMechanismName.cpp
148+
development/src/GXBytebuffer.cpp
149+
development/src/GXChargePerUnitScaling.cpp
150+
development/src/GXChargeTable.cpp
151+
development/src/GXCipher.cpp
152+
development/src/GXCommodity.cpp
153+
development/src/GXCreditChargeConfiguration.cpp
154+
development/src/GXCurrency.cpp
155+
development/src/GXDateTime.cpp
156+
development/src/GXDLMS.cpp
157+
development/src/GXDLMSAccount.cpp
158+
development/src/GXDLMSActionItem.cpp
159+
development/src/GXDLMSActionSchedule.cpp
160+
development/src/GXDLMSActionSet.cpp
161+
development/src/GXDLMSActivityCalendar.cpp
162+
development/src/GXDLMSAssociationLogicalName.cpp
163+
development/src/GXDLMSAssociationShortName.cpp
164+
development/src/GXDLMSAutoAnswer.cpp
165+
development/src/GXDLMSAutoConnect.cpp
166+
development/src/GXDLMSCaptureObject.cpp
167+
development/src/GXDLMSCertificateInfo.cpp
168+
development/src/GXDLMSCharge.cpp
169+
development/src/GXDLMSClient.cpp
170+
development/src/GXDLMSClock.cpp
171+
development/src/GXDLMSCompactData.cpp
172+
development/src/GXDLMSContextType.cpp
173+
development/src/GXDLMSConverter.cpp
174+
development/src/GXDLMSCredit.cpp
175+
development/src/GXDLMSData.cpp
176+
development/src/GXDLMSDayProfile.cpp
177+
development/src/GXDLMSDayProfileAction.cpp
178+
development/src/GXDLMSDemandRegister.cpp
179+
development/src/GXDLMSDisconnectControl.cpp
180+
development/src/GXDLMSEmergencyProfile.cpp
181+
development/src/GXDLMSExtendedRegister.cpp
182+
development/src/GXDLMSGPRSSetup.cpp
183+
development/src/GXDLMSGSMCellInfo.cpp
184+
development/src/GXDLMSGSMDiagnostic.cpp
185+
development/src/GXDLMSHdlcSetup.cpp
186+
development/src/GXDLMSIECOpticalPortSetup.cpp
187+
development/src/GXDLMSImageActivateInfo.cpp
188+
development/src/GXDLMSImageTransfer.cpp
189+
development/src/GXDLMSIp4Setup.cpp
190+
development/src/GXDLMSIp4SetupIpOption.cpp
191+
development/src/GXDLMSLimiter.cpp
192+
development/src/GXDLMSLimits.cpp
193+
development/src/GXDLMSLNCommandHandler.cpp
194+
development/src/GXDLMSLNParameters.cpp
195+
development/src/GXDLMSMacAddressSetup.cpp
196+
development/src/GXDLMSMBusClient.cpp
197+
development/src/GXDLMSMBusMasterPortSetup.cpp
198+
development/src/GXDLMSMBusSlavePortSetup.cpp
199+
development/src/GXDLMSMd5.cpp
200+
development/src/GXDLMSMessageHandler.cpp
201+
development/src/GXDLMSModemConfiguration.cpp
202+
development/src/GXDLMSModemInitialisation.cpp
203+
development/src/GXDLMSMonitoredValue.cpp
204+
development/src/GXDLMSNotify.cpp
205+
development/src/GXDLMSObject.cpp
206+
development/src/GXDLMSObjectCollection.cpp
207+
development/src/GXDLMSObjectDefinition.cpp
208+
development/src/GXDLMSObjectFactory.cpp
209+
development/src/GXDLMSParameterMonitor.cpp
210+
development/src/GXDLMSPppSetup.cpp
211+
development/src/GXDLMSPppSetupIPCPOption.cpp
212+
development/src/GXDLMSPppSetupLcpOption.cpp
213+
development/src/GXDLMSProfileGeneric.cpp
214+
development/src/GXDLMSPushObject.cpp
215+
development/src/GXDLMSPushSetup.cpp
216+
development/src/GXDLMSQualityOfService.cpp
217+
development/src/GXDLMSRegister.cpp
218+
development/src/GXDLMSRegisterActivation.cpp
219+
development/src/GXDLMSRegisterMonitor.cpp
220+
development/src/GXDLMSSapAssignment.cpp
221+
development/src/GXDLMSSchedule.cpp
222+
development/src/GXDLMSScheduleEntry.cpp
223+
development/src/GXDLMSScript.cpp
224+
development/src/GXDLMSScriptAction.cpp
225+
development/src/GXDLMSScriptTable.cpp
226+
development/src/GXDLMSSeasonProfile.cpp
227+
development/src/GXDLMSSecureClient.cpp
228+
development/src/GXDLMSSecureServer.cpp
229+
development/src/GXDLMSSecuritySetup.cpp
230+
development/src/GXDLMSServer.cpp
231+
development/src/GXDLMSSettings.cpp
232+
development/src/GXDLMSSha1.cpp
233+
development/src/GXDLMSSha256.cpp
234+
development/src/GXDLMSSNCommandHandler.cpp
235+
development/src/GXDLMSSNParameters.cpp
236+
development/src/GXDLMSSpecialDay.cpp
237+
development/src/GXDLMSSpecialDaysTable.cpp
238+
development/src/GXDLMSTarget.cpp
239+
development/src/GXDLMSTcpUdpSetup.cpp
240+
development/src/GXDLMSTokenGateway.cpp
241+
development/src/GXDLMSTranslator.cpp
242+
development/src/GXDLMSTranslatorStructure.cpp
243+
development/src/GXDLMSUtilityTables.cpp
244+
development/src/GXDLMSValueEventArg.cpp
245+
development/src/GXDLMSVariant.cpp
246+
development/src/GXDLMSWeekProfile.cpp
247+
development/src/GXHelpers.cpp
248+
development/src/GXReplyData.cpp
249+
development/src/GXSecure.cpp
250+
development/src/GXSerialNumberCounter.cpp
251+
development/src/GXSNInfo.cpp
252+
development/src/GXStandardObisCode.cpp
253+
development/src/GXStandardObisCodeCollection.cpp
254+
development/src/GXTokenGatewayConfiguration.cpp
255+
development/src/GXUnitCharge.cpp
256+
development/VS/GuruxDLMS.sln
257+
development/VS/GuruxDLMS.vcproj
258+
development/VS/GuruxDLMS.vcxproj
259+
development/VS/GuruxDLMS.vcxproj.filters
260+
development/makefile
261+
GuruxDLMSClientExample/include/communication.h
262+
GuruxDLMSClientExample/include/getopt.h
263+
GuruxDLMSClientExample/src/communication.cpp
264+
GuruxDLMSClientExample/src/getopt.c
265+
GuruxDLMSClientExample/src/GuruxDLMSClientExample.cpp
266+
GuruxDLMSClientExample/VS/GuruxDLMClientExample.sln
267+
GuruxDLMSClientExample/VS/GuruxDLMSClientExample.vcxproj
268+
GuruxDLMSClientExample/VS/GuruxDLMSClientExample.vcxproj.filters
269+
GuruxDLMSClientExample/.gitattributes
270+
GuruxDLMSClientExample/.gitignore
271+
GuruxDLMSClientExample/makefile
272+
GuruxDLMSPushExample/include/GXDLMSPushListener.h
273+
GuruxDLMSPushExample/src/GXDLMSPushListener.cpp
274+
GuruxDLMSPushExample/src/main.cpp
275+
GuruxDLMSPushExample/VS/GuruxDLMSPushExample.sln
276+
GuruxDLMSPushExample/VS/GuruxDLMSPushExample.vcxproj
277+
GuruxDLMSPushExample/VS/GuruxDLMSPushExample.vcxproj.filters
278+
GuruxDLMSPushExample/makefile
279+
GuruxDLMSServerExample/include/getopt.h
280+
GuruxDLMSServerExample/include/GXDLMSBase.h
281+
GuruxDLMSServerExample/include/GXDLMSServerLN.h
282+
GuruxDLMSServerExample/include/GXDLMSServerLN_47.h
283+
GuruxDLMSServerExample/include/GXDLMSServerSN.h
284+
GuruxDLMSServerExample/include/GXDLMSServerSN_47.h
285+
GuruxDLMSServerExample/src/getopt.c
286+
GuruxDLMSServerExample/src/GXDLMSBase.cpp
287+
GuruxDLMSServerExample/src/main.cpp
288+
GuruxDLMSServerExample/VS/GuruxDLMSServerExample.sln
289+
GuruxDLMSServerExample/VS/GuruxDLMSServerExample.vcxproj
290+
GuruxDLMSServerExample/VS/GuruxDLMSServerExample.vcxproj.filters
291+
GuruxDLMSServerExample/.gitattributes
292+
GuruxDLMSServerExample/.gitignore
293+
GuruxDLMSServerExample/makefile
294+
mbed/GuruxDLMSClientExample/.mbed
295+
mbed/GuruxDLMSClientExample/communication.cpp
296+
mbed/GuruxDLMSClientExample/communication.h
297+
mbed/GuruxDLMSClientExample/main.cpp
298+
mbed/GuruxDLMSClientExample/mbed-os.lib
299+
mbed/GuruxDLMSClientExample/mbed_settings.py
300+
.gitattributes
301+
.gitignore
302+
CREDITS.md
303+
LICENSE
304+
README.md)
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Toolchains are not configured Configure

development/src/GXBytebuffer.cpp

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -114,19 +114,22 @@ void CGXByteBuffer::SetPosition(unsigned long value)
114114
void CGXByteBuffer::Capacity(unsigned long capacity)
115115
{
116116
m_Capacity = capacity;
117+
118+
if (m_Data != NULL)
119+
{
120+
free(m_Data);
121+
m_Data = NULL;
122+
}
123+
117124
if (capacity == 0)
118125
{
119-
if (m_Data != NULL)
120-
{
121-
free(m_Data);
122-
m_Data = NULL;
123-
}
124126
m_Size = 0;
125127
m_Position = 0;
126128
}
127129
else
128130
{
129131
m_Data = (unsigned char*)realloc(m_Data, m_Capacity);
132+
130133
if (m_Size > capacity)
131134
{
132135
m_Size = capacity;

0 commit comments

Comments
 (0)