mirror of
https://github.com/ddnet/ddnet.git
synced 2024-11-19 22:48:18 +00:00
fixed a possible crash within snapshot handling and some misspellings. Closes #1382
This commit is contained in:
parent
d41c4b4dbd
commit
b5095427b2
|
@ -330,6 +330,8 @@ int CSnapshotDelta::UnpackDelta(CSnapshot *pFrom, CSnapshot *pTo, void *pSrcData
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
Type = *pData++;
|
Type = *pData++;
|
||||||
|
if(Type < 0)
|
||||||
|
return -1;
|
||||||
ID = *pData++;
|
ID = *pData++;
|
||||||
if(m_aItemSizes[Type])
|
if(m_aItemSizes[Type])
|
||||||
ItemSize = m_aItemSizes[Type];
|
ItemSize = m_aItemSizes[Type];
|
||||||
|
@ -355,7 +357,7 @@ int CSnapshotDelta::UnpackDelta(CSnapshot *pFrom, CSnapshot *pTo, void *pSrcData
|
||||||
FromIndex = pFrom->GetItemIndex(Key);
|
FromIndex = pFrom->GetItemIndex(Key);
|
||||||
if(FromIndex != -1)
|
if(FromIndex != -1)
|
||||||
{
|
{
|
||||||
// we got an update so we need pTo apply the diff
|
// we got an update so we need to apply the diff
|
||||||
UndiffItem((int *)pFrom->GetItem(FromIndex)->Data(), pData, pNewData, ItemSize/4);
|
UndiffItem((int *)pFrom->GetItem(FromIndex)->Data(), pData, pNewData, ItemSize/4);
|
||||||
m_aSnapshotDataUpdates[m_SnapshotCurrent]++;
|
m_aSnapshotDataUpdates[m_SnapshotCurrent]++;
|
||||||
}
|
}
|
||||||
|
@ -527,10 +529,10 @@ int *CSnapshotBuilder::GetItemData(int Key)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int CSnapshotBuilder::Finish(void *SpnapData)
|
int CSnapshotBuilder::Finish(void *pSpnapData)
|
||||||
{
|
{
|
||||||
// flattern and make the snapshot
|
// flattern and make the snapshot
|
||||||
CSnapshot *pSnap = (CSnapshot *)SpnapData;
|
CSnapshot *pSnap = (CSnapshot *)pSpnapData;
|
||||||
int OffsetSize = sizeof(int)*m_NumItems;
|
int OffsetSize = sizeof(int)*m_NumItems;
|
||||||
pSnap->m_DataSize = m_DataSize;
|
pSnap->m_DataSize = m_DataSize;
|
||||||
pSnap->m_NumItems = m_NumItems;
|
pSnap->m_NumItems = m_NumItems;
|
||||||
|
|
|
@ -107,7 +107,7 @@ public:
|
||||||
void PurgeAll();
|
void PurgeAll();
|
||||||
void PurgeUntil(int Tick);
|
void PurgeUntil(int Tick);
|
||||||
void Add(int Tick, int64 Tagtime, int DataSize, void *pData, int CreateAlt);
|
void Add(int Tick, int64 Tagtime, int DataSize, void *pData, int CreateAlt);
|
||||||
int Get(int Tick, int64 *Tagtime, CSnapshot **pData, CSnapshot **ppAltData);
|
int Get(int Tick, int64 *pTagtime, CSnapshot **ppData, CSnapshot **ppAltData);
|
||||||
};
|
};
|
||||||
|
|
||||||
class CSnapshotBuilder
|
class CSnapshotBuilder
|
||||||
|
@ -132,7 +132,7 @@ public:
|
||||||
CSnapshotItem *GetItem(int Index);
|
CSnapshotItem *GetItem(int Index);
|
||||||
int *GetItemData(int Key);
|
int *GetItemData(int Key);
|
||||||
|
|
||||||
int Finish(void *Snapdata);
|
int Finish(void *pSnapdata);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue