Fixed size() returning 0 when the type is VARIABLE_NONE (must return -1)

This commit is contained in:
smallmodel committed 2023-08-18 14:14:32 +02:00
1 parent 854136d85b
commit 80ab513d76
2 files changed
+13 -16

No files matched your search

+12 -15
View File
@@ -590,12 +590,9 @@ void ScriptVariable::ClearPointer()
}
}
void ScriptVariable::ClearPointerInternal()
void ScriptVariable::ClearPointerInternal() const
{
type = VARIABLE_NONE;
m_data.pointerValue->Clear();
m_data.pointerValue = NULL;
}
const char *ScriptVariable::GetTypeName() const
@@ -728,11 +725,6 @@ void ScriptVariable::SetTrue(void)
int ScriptVariable::arraysize(void) const
{
switch (GetType()) {
case VARIABLE_POINTER:
m_data.pointerValue->Clear();
delete m_data.pointerValue;
return -1;
case VARIABLE_NONE:
return -1;
@@ -751,7 +743,11 @@ int ScriptVariable::arraysize(void) const
return (*m_data.safeContainerValue)->NumObjects();
} else {
return 0;
}
}
case VARIABLE_POINTER:
ClearPointerInternal();
return -1;
default:
return 1;
@@ -763,10 +759,7 @@ int ScriptVariable::arraysize(void) const
size_t ScriptVariable::size(void) const
{
switch (GetType()) {
case VARIABLE_POINTER:
m_data.pointerValue->Clear();
delete m_data.pointerValue;
case VARIABLE_NONE:
return -1;
case VARIABLE_CONSTSTRING:
@@ -790,7 +783,11 @@ size_t ScriptVariable::size(void) const
return (*m_data.safeContainerValue)->NumObjects();
} else {
return 0;
}
}
case VARIABLE_POINTER:
ClearPointerInternal();
return -1;
default:
return 1;