Make _members dynamically allocated due to static array limit on ARM.

This commit is contained in:
Adam Ierymenko 2015-10-19 16:18:57 -07:00
parent 69dad37d8f
commit 5e6eae620b
2 changed files with 4 additions and 2 deletions

View File

@ -56,7 +56,8 @@ Cluster::Cluster(const RuntimeEnvironment *renv,uint16_t id,DistanceAlgorithm da
_y(y), _y(y),
_z(z), _z(z),
_da(da), _da(da),
_id(id) _id(id),
_members(new _Member[65536])
{ {
uint16_t stmp[ZT_SHA512_DIGEST_LEN / sizeof(uint16_t)]; uint16_t stmp[ZT_SHA512_DIGEST_LEN / sizeof(uint16_t)];
@ -76,6 +77,7 @@ Cluster::~Cluster()
{ {
Utils::burn(_masterSecret,sizeof(_masterSecret)); Utils::burn(_masterSecret,sizeof(_masterSecret));
Utils::burn(_key,sizeof(_key)); Utils::burn(_key,sizeof(_key));
delete [] _members;
} }
void Cluster::handleIncomingStateMessage(const void *msg,unsigned int len) void Cluster::handleIncomingStateMessage(const void *msg,unsigned int len)

View File

@ -303,7 +303,7 @@ private:
~_Member() { Utils::burn(key,sizeof(key)); } ~_Member() { Utils::burn(key,sizeof(key)); }
}; };
_Member _members[65536]; // cluster IDs can be from 0 to 65535 (16-bit) _Member *const _members; // cluster IDs can be from 0 to 65535 (16-bit)
std::vector<uint16_t> _memberIds; std::vector<uint16_t> _memberIds;
Mutex _memberIds_m; Mutex _memberIds_m;