Page 1 of 1

Multipla minnesläckor - SettingsWinRegistry.cpp

Posted: Fri Mar 17, 2023 9:45 am
by PerM
Hej,

Tänkte se hur mycket det skulle krävas för att kompilera telldus-core som 64-bitars samt att lägga till avallokerings funktionen (http://developer.telldus.se/ticket/66) när jag snubblade över filen trunk/telldus-core/driver/libtelldus-core/SettingsWinRegistry.cpp.

Det finns multipla minnesläckor i denna fil:

Rad 26: d = new privateVars();
saknar 'delete d' i destructor. Varför inte ha ett objektet i data-arean i stället för heapen?

Rad 170: Buff = new char[dwLength];
Buff pekar redan på allokerat minne från rad 163

Rad 235: Buff = new char[dwLength];
Buff pekar redan på allokerat minne från rad 231

Rad 240-241: 'delete Buff' saknas

Rad 324: Buff = new char[dwLength];
Buff pekar redan på allokerat minne från rad 317

Re: Multipla minnesläckor - SettingsWinRegistry.cpp

Posted: Fri Mar 17, 2023 9:45 am
by micke.prag
Tack så mycket för detta. Har commitat detta till trunk men inte haft tid att testa genom ordentligt.
PerM wrote: Rad 26: d = new privateVars();
saknar 'delete d' i destructor. Varför inte ha ett objektet i data-arean i stället för heapen?
Settings-klassen har olika privata variabler beronde på plattform och använder därför "pimpl idiom"