Skip to content

Commit dec9aea

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

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

src/cbor/CborEncoder.cpp

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

3+
static CBORMessageEncoderClass* singleton = nullptr;
34
CBORMessageEncoderClass& CBORMessageEncoder = CBORMessageEncoderClass::getInstance();
45

56
Encoder::Status CBORMessageEncoderClass::encode(Message* message, uint8_t * data, size_t& len) { // TODO do we need to propagate the maximum length?
@@ -25,6 +26,13 @@ Encoder::Status CBORMessageEncoderClass::encode(Message* message, uint8_t * data
2526
return Encoder::Status::Complete;
2627
}
2728

29+
CBORMessageEncoderClass& CBORMessageEncoderClass::getInstance() {
30+
if(singleton == nullptr) {
31+
singleton = new CBORMessageEncoderClass();
32+
}
33+
return *singleton;
34+
}
35+
2836
CBORMessageEncoderInterface::CBORMessageEncoderInterface(const CBORTag tag, const MessageId id)
2937
: tag(tag), id(id) {
3038
// call singleton/global variable and insert this encoder

src/cbor/CborEncoder.h

+2-4
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,8 @@ class CBORMessageEncoderInterface {
3535
// TODO make a private constructor?
3636
class CBORMessageEncoderClass: public Encoder {
3737
public:
38-
static CBORMessageEncoderClass& getInstance() {
39-
return singleton;
40-
}
38+
CBORMessageEncoderClass() {}
39+
static CBORMessageEncoderClass& getInstance();
4140

4241
void append(CBORTag id, CBORMessageEncoderInterface* encoder) {
4342
encoders[id] = encoder;
@@ -46,7 +45,6 @@ class CBORMessageEncoderClass: public Encoder {
4645
Encoder::Status encode(Message* message, uint8_t * data, size_t& len);
4746
private:
4847
std::map<MessageId, CBORMessageEncoderInterface*> encoders;
49-
static CBORMessageEncoderClass singleton;
5048
};
5149

5250
extern CBORMessageEncoderClass& CBORMessageEncoder;

0 commit comments

Comments
 (0)