v1.2b8
parent
cd02273e2a
commit
5b2d493872
|
|
@ -1,5 +1,11 @@
|
|||
NORM Version History
|
||||
|
||||
Version 1.2b8
|
||||
=============
|
||||
- Fixed bug introduced during "alignment" changes
|
||||
in previous release.
|
||||
- Fixed Protolib WIN32 build issue
|
||||
|
||||
Version 1.2b7
|
||||
=============
|
||||
- Changed normMessage.[h|cpp] to fix alignment issues
|
||||
|
|
|
|||
|
|
@ -511,7 +511,6 @@ void NormInstance::Shutdown()
|
|||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
notify_pool.Append(previous_notification);
|
||||
previous_notification = NULL;
|
||||
}
|
||||
|
|
@ -545,7 +544,6 @@ void NormInstance::Shutdown()
|
|||
}
|
||||
delete n;
|
||||
}
|
||||
|
||||
notify_pool.Destroy();
|
||||
} // end NormInstance::Shutdown()
|
||||
|
||||
|
|
|
|||
|
|
@ -161,9 +161,10 @@ NormApp::NormApp()
|
|||
|
||||
NormApp::~NormApp()
|
||||
{
|
||||
if (address) delete address;
|
||||
if (rx_cache_path) delete rx_cache_path;
|
||||
if (post_processor) delete post_processor;
|
||||
if (address) delete[] address;
|
||||
if (interface_name) delete[] interface_name;
|
||||
if (rx_cache_path) delete[] rx_cache_path;
|
||||
if (post_processor) delete[] post_processor;
|
||||
}
|
||||
|
||||
// NOTE on message flushing mode:
|
||||
|
|
|
|||
|
|
@ -88,14 +88,14 @@ bool NormEncoder::Init(int numParity, int vecSizeMax)
|
|||
// Free memory allocated for encoder state (Encoder must be re-inited before use)
|
||||
void NormEncoder::Destroy()
|
||||
{
|
||||
if(scratch)
|
||||
if(NULL != scratch)
|
||||
{
|
||||
delete []scratch;
|
||||
delete[] scratch;
|
||||
scratch = NULL;
|
||||
}
|
||||
if (genPoly)
|
||||
if (NULL != genPoly)
|
||||
{
|
||||
delete genPoly;
|
||||
delete[] genPoly;
|
||||
genPoly = NULL;
|
||||
}
|
||||
} // end NormEncoder::Destroy()
|
||||
|
|
@ -432,7 +432,6 @@ int NormDecoder::Decode(char** dVec, int ndata, UINT16 erasureCount, UINT16* era
|
|||
data++;
|
||||
}
|
||||
}
|
||||
|
||||
return erasureCount;
|
||||
} // end NormDecoder::Decode()
|
||||
|
||||
|
|
|
|||
|
|
@ -1983,7 +1983,7 @@ void NormNodeTree::AttachNode(NormNode *node)
|
|||
}
|
||||
}
|
||||
root = node; // root _was_ NULL
|
||||
} // end NormNodeTree::AddNode()
|
||||
} // end NormNodeTree::AttachNode()
|
||||
|
||||
|
||||
void NormNodeTree::DetachNode(NormNode* node)
|
||||
|
|
|
|||
|
|
@ -457,14 +457,9 @@ class NormNodeTree
|
|||
NormNodeTree();
|
||||
~NormNodeTree();
|
||||
NormNode* FindNodeById(NormNodeId nodeId) const;
|
||||
void DeleteNode(NormNode *theNode)
|
||||
{
|
||||
ASSERT(theNode);
|
||||
DetachNode(theNode);
|
||||
delete theNode;
|
||||
}
|
||||
void AttachNode(NormNode *theNode);
|
||||
void DetachNode(NormNode *theNode);
|
||||
NormNode* GetRoot() const {return root;}
|
||||
void Destroy(); // delete all nodes in tree
|
||||
|
||||
private:
|
||||
|
|
@ -506,7 +501,6 @@ class NormNodeList
|
|||
void Destroy(); // delete all nodes in list
|
||||
const NormNode* Head() {return head;}
|
||||
|
||||
|
||||
// Members
|
||||
private:
|
||||
NormNode* head;
|
||||
|
|
|
|||
|
|
@ -67,6 +67,7 @@ bool NormObject::Open(const NormObjectSize& objectSize,
|
|||
// DATA or FILE objects, buffer size for STREAM objects
|
||||
// In either case, we need our sliding bit masks to be of
|
||||
// appropriate size.
|
||||
ASSERT(!IsOpen());
|
||||
if (server)
|
||||
{
|
||||
if (infoLen > 0)
|
||||
|
|
@ -1950,7 +1951,7 @@ NormDataObject::~NormDataObject()
|
|||
{
|
||||
if (data_ptr)
|
||||
{
|
||||
delete data_ptr;
|
||||
delete[] data_ptr;
|
||||
data_ptr = NULL;
|
||||
}
|
||||
data_released = false;
|
||||
|
|
@ -1964,6 +1965,12 @@ bool NormDataObject::Open(char* dataPtr,
|
|||
const char* infoPtr,
|
||||
UINT16 infoLen)
|
||||
{
|
||||
if (data_released && (NULL != data_ptr))
|
||||
{
|
||||
delete[] data_ptr;
|
||||
data_ptr = NULL;
|
||||
data_released = false;
|
||||
}
|
||||
if (server)
|
||||
{
|
||||
// We're receiving this data object
|
||||
|
|
@ -3067,7 +3074,7 @@ void NormObjectTable::Destroy()
|
|||
while((obj = Find(range_lo)))
|
||||
{
|
||||
Remove(obj);
|
||||
delete obj;
|
||||
delete obj; // (TBD - make this obj->Release() ???
|
||||
}
|
||||
delete []table;
|
||||
table = (NormObject**)NULL;
|
||||
|
|
|
|||
|
|
@ -53,13 +53,12 @@ bool NormSegmentPool::Init(unsigned int count, unsigned int size)
|
|||
void NormSegmentPool::Destroy()
|
||||
{
|
||||
ASSERT(seg_count == seg_total);
|
||||
char* ptr;
|
||||
memcpy(&ptr, &seg_list, sizeof(char*));
|
||||
char* ptr = seg_list;
|
||||
while (ptr)
|
||||
{
|
||||
char* next;
|
||||
memcpy(&next, ptr, sizeof(char*));
|
||||
delete ptr;
|
||||
delete[] ptr;
|
||||
ptr = next;
|
||||
}
|
||||
seg_list = NULL;
|
||||
|
|
@ -73,7 +72,7 @@ char* NormSegmentPool::Get()
|
|||
char* ptr = seg_list;
|
||||
if (ptr)
|
||||
{
|
||||
memcpy(&seg_list, ptr, sizeof(char));
|
||||
memcpy(&seg_list, ptr, sizeof(char*));
|
||||
seg_count--;
|
||||
//#ifdef NORM_DEBUG
|
||||
overrun_flag = false;
|
||||
|
|
|
|||
|
|
@ -363,12 +363,22 @@ void NormSession::StopServer()
|
|||
{
|
||||
if (probe_timer.IsActive()) probe_timer.Deactivate();
|
||||
encoder.Destroy();
|
||||
acking_node_tree.Destroy();
|
||||
cc_node_list.Destroy();
|
||||
// Iterate tx_table and release objects
|
||||
while (!tx_table.IsEmpty())
|
||||
{
|
||||
NormObject* obj = tx_table.Find(tx_table.RangeLo());
|
||||
ASSERT(obj);
|
||||
tx_table.Remove(obj);
|
||||
obj->Release();
|
||||
}
|
||||
// Then destroy table
|
||||
tx_table.Destroy();
|
||||
block_pool.Destroy();
|
||||
segment_pool.Destroy();
|
||||
tx_repair_mask.Destroy();
|
||||
tx_pending_mask.Destroy();
|
||||
tx_table.Destroy();
|
||||
is_server = false;
|
||||
if (!IsClient()) Close();
|
||||
} // end NormSession::StopServer()
|
||||
|
|
@ -386,7 +396,17 @@ bool NormSession::StartClient(unsigned long bufferSize, const char* interfaceNam
|
|||
|
||||
void NormSession::StopClient()
|
||||
{
|
||||
server_tree.Destroy();
|
||||
// Iterate server_tree and close/release server nodes
|
||||
NormServerNode* serverNode =
|
||||
static_cast<NormServerNode*>(server_tree.GetRoot());
|
||||
while (serverNode)
|
||||
{
|
||||
server_tree.DetachNode(serverNode);
|
||||
serverNode->Close();
|
||||
serverNode->Release();
|
||||
serverNode =
|
||||
static_cast<NormServerNode*>(server_tree.GetRoot());
|
||||
}
|
||||
is_client = false;
|
||||
if (!is_server) Close();
|
||||
}
|
||||
|
|
@ -639,7 +659,8 @@ void NormSession::ServerRemoveAckingNode(NormNodeId nodeId)
|
|||
{
|
||||
if (watermark_pending && theNode->AckReceived())
|
||||
acks_collected--;
|
||||
acking_node_tree.DeleteNode(theNode);
|
||||
acking_node_tree.DetachNode(theNode);
|
||||
delete theNode;
|
||||
acking_node_count--;
|
||||
}
|
||||
} // end NormSession::RemoveAckingNode()
|
||||
|
|
@ -982,8 +1003,6 @@ bool NormSession::QueueTxObject(NormObject* obj)
|
|||
ASSERT(tx_pending_mask.Test(obj->GetId()));
|
||||
next_tx_object_id++;
|
||||
TouchServer();
|
||||
//posted_tx_queue_empty = false;
|
||||
//Serve();
|
||||
return true;
|
||||
} // end NormSession::QueueTxObject()
|
||||
|
||||
|
|
|
|||
|
|
@ -32,6 +32,6 @@
|
|||
|
||||
#ifndef _NORM_VERSION
|
||||
#define _NORM_VERSION
|
||||
#define VERSION "1.2b7"
|
||||
#define VERSION "1.2b8"
|
||||
#endif // _NORM_VERSION
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue