Loading ndb/src/ndbapi/Ndbinit.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -296,7 +296,8 @@ NdbImpl::NdbImpl(Ndb_cluster_connection *ndb_cluster_connection, : m_ndb_cluster_connection(ndb_cluster_connection->m_impl), m_dictionary(ndb), theCurrentConnectIndex(0), theNdbObjectIdMap(1024,1024), theNdbObjectIdMap(ndb_cluster_connection->m_impl.m_transporter_facade->theMutexPtr, 1024,1024), theNoOfDBnodes(0) { int i; Loading ndb/src/ndbapi/ObjectMap.hpp +20 −13 Original line number Diff line number Diff line Loading @@ -30,7 +30,7 @@ class NdbObjectIdMap //: NdbLockable { public: STATIC_CONST( InvalidId = ~(Uint32)0 ); NdbObjectIdMap(Uint32 initalSize = 128, Uint32 expandSize = 10); NdbObjectIdMap(NdbMutex*, Uint32 initalSize = 128, Uint32 expandSize = 10); ~NdbObjectIdMap(); Uint32 map(void * object); Loading @@ -46,14 +46,16 @@ private: void * m_obj; } * m_map; NdbMutex * m_mutex; void expand(Uint32 newSize); }; inline NdbObjectIdMap::NdbObjectIdMap(Uint32 sz, Uint32 eSz) { NdbObjectIdMap::NdbObjectIdMap(NdbMutex* mutex, Uint32 sz, Uint32 eSz) { m_size = 0; m_firstFree = InvalidId; m_map = 0; m_mutex = mutex; m_expandSize = eSz; expand(sz); #ifdef DEBUG_OBJECTMAP Loading Loading @@ -131,13 +133,12 @@ NdbObjectIdMap::getObject(Uint32 id){ inline void NdbObjectIdMap::expand(Uint32 incSize){ NdbMutex_Lock(m_mutex); Uint32 newSize = m_size + incSize; MapEntry * tmp = (MapEntry*)malloc(newSize * sizeof(MapEntry)); MapEntry * tmp = (MapEntry*)realloc(m_map, newSize * sizeof(MapEntry)); if (m_map) { memcpy(tmp, m_map, m_size * sizeof(MapEntry)); free((void*)m_map); } if (likely(tmp != 0)) { m_map = tmp; for(Uint32 i = m_size; i<newSize; i++){ Loading @@ -147,5 +148,11 @@ NdbObjectIdMap::expand(Uint32 incSize){ m_map[newSize-1].m_next = InvalidId; m_size = newSize; } else { ndbout_c("NdbObjectIdMap::expand unable to expand!!"); } NdbMutex_Unlock(m_mutex); } #endif Loading
ndb/src/ndbapi/Ndbinit.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -296,7 +296,8 @@ NdbImpl::NdbImpl(Ndb_cluster_connection *ndb_cluster_connection, : m_ndb_cluster_connection(ndb_cluster_connection->m_impl), m_dictionary(ndb), theCurrentConnectIndex(0), theNdbObjectIdMap(1024,1024), theNdbObjectIdMap(ndb_cluster_connection->m_impl.m_transporter_facade->theMutexPtr, 1024,1024), theNoOfDBnodes(0) { int i; Loading
ndb/src/ndbapi/ObjectMap.hpp +20 −13 Original line number Diff line number Diff line Loading @@ -30,7 +30,7 @@ class NdbObjectIdMap //: NdbLockable { public: STATIC_CONST( InvalidId = ~(Uint32)0 ); NdbObjectIdMap(Uint32 initalSize = 128, Uint32 expandSize = 10); NdbObjectIdMap(NdbMutex*, Uint32 initalSize = 128, Uint32 expandSize = 10); ~NdbObjectIdMap(); Uint32 map(void * object); Loading @@ -46,14 +46,16 @@ private: void * m_obj; } * m_map; NdbMutex * m_mutex; void expand(Uint32 newSize); }; inline NdbObjectIdMap::NdbObjectIdMap(Uint32 sz, Uint32 eSz) { NdbObjectIdMap::NdbObjectIdMap(NdbMutex* mutex, Uint32 sz, Uint32 eSz) { m_size = 0; m_firstFree = InvalidId; m_map = 0; m_mutex = mutex; m_expandSize = eSz; expand(sz); #ifdef DEBUG_OBJECTMAP Loading Loading @@ -131,13 +133,12 @@ NdbObjectIdMap::getObject(Uint32 id){ inline void NdbObjectIdMap::expand(Uint32 incSize){ NdbMutex_Lock(m_mutex); Uint32 newSize = m_size + incSize; MapEntry * tmp = (MapEntry*)malloc(newSize * sizeof(MapEntry)); MapEntry * tmp = (MapEntry*)realloc(m_map, newSize * sizeof(MapEntry)); if (m_map) { memcpy(tmp, m_map, m_size * sizeof(MapEntry)); free((void*)m_map); } if (likely(tmp != 0)) { m_map = tmp; for(Uint32 i = m_size; i<newSize; i++){ Loading @@ -147,5 +148,11 @@ NdbObjectIdMap::expand(Uint32 incSize){ m_map[newSize-1].m_next = InvalidId; m_size = newSize; } else { ndbout_c("NdbObjectIdMap::expand unable to expand!!"); } NdbMutex_Unlock(m_mutex); } #endif