Merge pull request #391 from alliedmodders/dataprop-stringt-arrays
Fix quirks with Get/SetEntPropString on string_t arrays in datadesc
This commit is contained in:
commit
d6476728f9
@ -1924,19 +1924,25 @@ static cell_t GetEntPropString(IPluginContext *pContext, const cell_t *params)
|
||||
|
||||
bIsStringIndex = (td->fieldType != FIELD_CHARACTER);
|
||||
|
||||
if (bIsStringIndex && (element < 0 || element >= td->fieldSize))
|
||||
if (element != 0)
|
||||
{
|
||||
if (bIsStringIndex)
|
||||
{
|
||||
if (element < 0 || element >= td->fieldSize)
|
||||
{
|
||||
return pContext->ThrowNativeError("Element %d is out of bounds (Prop %s has %d elements).",
|
||||
element,
|
||||
prop,
|
||||
td->fieldSize);
|
||||
}
|
||||
else if (element != 0)
|
||||
}
|
||||
else
|
||||
{
|
||||
return pContext->ThrowNativeError("Prop %s is not an array. Element %d is invalid.",
|
||||
prop,
|
||||
element);
|
||||
}
|
||||
}
|
||||
|
||||
offset = info.actual_offset;
|
||||
if (bIsStringIndex)
|
||||
@ -2061,6 +2067,27 @@ static cell_t SetEntPropString(IPluginContext *pContext, const cell_t *params)
|
||||
offset = info.actual_offset;
|
||||
|
||||
bIsStringIndex = (td->fieldType != FIELD_CHARACTER);
|
||||
|
||||
if (element != 0)
|
||||
{
|
||||
if (bIsStringIndex)
|
||||
{
|
||||
if (element < 0 || element >= td->fieldSize)
|
||||
{
|
||||
return pContext->ThrowNativeError("Element %d is out of bounds (Prop %s has %d elements).",
|
||||
element,
|
||||
prop,
|
||||
td->fieldSize);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return pContext->ThrowNativeError("Prop %s is not an array. Element %d is invalid.",
|
||||
prop,
|
||||
element);
|
||||
}
|
||||
}
|
||||
|
||||
if (bIsStringIndex)
|
||||
{
|
||||
offset += (element * (td->fieldSizeInBytes / td->fieldSize));
|
||||
|
Loading…
Reference in New Issue
Block a user