Report size for DataPack Handles.

This commit is contained in:
Asher Baker 2015-05-13 19:43:53 +01:00
parent 7f97e67931
commit fd48f4adfd
2 changed files with 13 additions and 1 deletions

View File

@ -61,6 +61,7 @@ public: //IDataPack
void PackFunction(cell_t function);
public:
void Initialize();
inline size_t GetCapacity() const { return m_capacity; }
private:
void CheckSize(size_t sizetype);
private:

View File

@ -31,9 +31,14 @@
#include "common_logic.h"
#include <IHandleSys.h>
#include <IDataPack.h>
#include <ISourceMod.h>
// This just in from the bucket o' hacks department.
// One day, IDataPack will go away and CDataPack will be merged into this file.
// This internal header is included directly to access GetCapacity,
// which can not be added to the public interface due to ABI issues.
#include "../CDataPack.h"
HandleType_t g_DataPackType;
class DataPackNatives :
@ -63,6 +68,12 @@ public:
{
g_pSM->FreeDataPack(reinterpret_cast<IDataPack *>(object));
}
bool GetHandleApproxSize(HandleType_t type, void *object, unsigned int *pSize)
{
CDataPack *pack = reinterpret_cast<CDataPack *>(object);
*pSize = sizeof(CDataPack) + pack->GetCapacity();
return true;
}
};
static cell_t smn_CreateDataPack(IPluginContext *pContext, const cell_t *params)