Skip to content

Commit

Permalink
Fix compilation with clang
Browse files Browse the repository at this point in the history
  • Loading branch information
bblanchon committed Apr 18, 2015
1 parent 1ce45e5 commit 206a0d1
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 5 deletions.
2 changes: 1 addition & 1 deletion include/ArduinoJson/DynamicJsonBuffer.hpp
Expand Up @@ -14,7 +14,7 @@ namespace ArduinoJson {

// Forward declaration
namespace Internals {
class DynamicJsonBufferBlock;
struct DynamicJsonBufferBlock;
}

// Implements a JsonBuffer with dynamic memory allocation.
Expand Down
13 changes: 9 additions & 4 deletions src/DynamicJsonBuffer.cpp
Expand Up @@ -6,19 +6,24 @@

#include "../include/ArduinoJson/DynamicJsonBuffer.hpp"

using namespace ArduinoJson;

namespace ArduinoJson {
namespace Internals {
struct DynamicJsonBufferBlock {
struct DynamicJsonBufferBlockWithoutData {
DynamicJsonBufferBlock* next;
size_t capacity;
size_t size;
};


struct DynamicJsonBufferBlock : DynamicJsonBufferBlockWithoutData {
uint8_t data[1];
};
}
}

using namespace ArduinoJson;
using namespace ArduinoJson::Internals;

DynamicJsonBuffer::DynamicJsonBuffer() {
_head = createBlock(FIRST_BLOCK_CAPACITY);
}
Expand Down Expand Up @@ -65,7 +70,7 @@ void DynamicJsonBuffer::addNewBlock() {
}

DynamicJsonBuffer::Block* DynamicJsonBuffer::createBlock(size_t capacity) {
size_t blkSize = sizeof(Block) - sizeof(Block::data) + capacity;
size_t blkSize = sizeof(DynamicJsonBufferBlockWithoutData) + capacity;
Block* block = static_cast<Block*>(malloc(blkSize));
block->capacity = capacity;
block->size = 0;
Expand Down

0 comments on commit 206a0d1

Please sign in to comment.