SysConf: Use vectors instead of raw pointers

This commit is contained in:
Léo Lam
2017-02-25 23:59:31 +01:00
parent e9850382e3
commit a1e16c47db
2 changed files with 20 additions and 23 deletions

View File

@ -45,23 +45,23 @@ struct SSysConfHeader
struct SSysConfEntry
{
u16 offset;
u16 offset = 0;
SysconfType type;
u8 nameLength;
char name[32];
u16 dataLength;
u8* data;
u8 nameLength = 0;
char name[32] = {};
u16 dataLength = 0;
std::vector<u8> data;
template <class T>
T GetData()
{
return *(T*)data;
return *(T*)data.data();
}
bool GetArrayData(u8* dest, u16 destSize)
{
if (dest && destSize >= dataLength)
{
memcpy(dest, data, dataLength);
memcpy(dest, data.data(), dataLength);
return true;
}
return false;
@ -70,7 +70,7 @@ struct SSysConfEntry
{
if (buffer)
{
memcpy(data, buffer, std::min<u16>(bufferSize, dataLength));
memcpy(data.data(), buffer, std::min<u16>(bufferSize, dataLength));
return true;
}
return false;
@ -169,7 +169,7 @@ public:
return false;
}
*(T*)index->data = newValue;
*(T*)index->data.data() = newValue;
return true;
}