Skip to content

Commit 26ef18a

Browse files
[TMP] finding memory usage raise culprit
1 parent dec9aea commit 26ef18a

File tree

2 files changed

+10
-5
lines changed

2 files changed

+10
-5
lines changed

src/cbor/CborDecoder.cpp

+8
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#include "CborDecoder.h"
22

3+
static CBORMessageDecoderClass* singleton = nullptr;
34
CBORMessageDecoderClass& CBORMessageDecoder = CBORMessageDecoderClass::getInstance();
45

56
Decoder::Status CBORMessageDecoderClass::decode(Message* msg, const uint8_t* const buf, size_t &len) { // TODO do we need to propagate the maximum length?
@@ -39,6 +40,13 @@ Decoder::Status CBORMessageDecoderClass::decode(Message* msg, const uint8_t* con
3940
return Decoder::Status::Complete;
4041
}
4142

43+
CBORMessageDecoderClass& CBORMessageDecoderClass::getInstance() {
44+
if(singleton == nullptr) {
45+
singleton = new CBORMessageDecoderClass();
46+
}
47+
return *singleton;
48+
}
49+
4250
CBORMessageDecoderInterface::CBORMessageDecoderInterface(const CBORTag tag, const MessageId id)
4351
: tag(tag), id(id) {
4452
// call singleton/global variable and insert this encoder

src/cbor/CborDecoder.h

+2-5
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,8 @@ class CBORMessageDecoderInterface {
3535
// TODO make a private constructor?
3636
class CBORMessageDecoderClass: public Decoder {
3737
public:
38-
static CBORMessageDecoderClass& getInstance() {
39-
return singleton;
40-
}
41-
38+
CBORMessageDecoderClass() {}
39+
static CBORMessageDecoderClass& getInstance();
4240

4341
void append(CBORTag id, CBORMessageDecoderInterface* encoder) {
4442
decoders[id] = encoder;
@@ -47,7 +45,6 @@ class CBORMessageDecoderClass: public Decoder {
4745
Decoder::Status decode(Message* msg, const uint8_t* const buf, size_t &len);
4846
private:
4947
std::map<CBORTag, CBORMessageDecoderInterface*> decoders;
50-
static CBORMessageDecoderClass singleton;
5148
};
5249

5350
extern CBORMessageDecoderClass& CBORMessageDecoder;

0 commit comments

Comments
 (0)