From 29063e82701d7834140a4e3bfbdd39fddb2ed970 Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenko@redhat.com>
Date: Tue, 21 Jun 2016 11:48:13 +0200
Subject: [PATCH 5/5] make code compatible with angelscript 2.31.0
Signed-off-by: Igor Gnatenko <ignatenko@redhat.com>
---
src/scriptengine/script_engine.cpp | 2 +-
src/scriptengine/scriptarray.cpp | 56 +++++++++++++++---------------
src/scriptengine/scriptarray.hpp | 18 +++++-----
src/scriptengine/scriptstdstring_utils.cpp | 2 +-
4 files changed, 39 insertions(+), 39 deletions(-)
diff --git a/src/scriptengine/script_engine.cpp b/src/scriptengine/script_engine.cpp
index 7bd4e7b..3346469 100644
--- a/src/scriptengine/script_engine.cpp
+++ b/src/scriptengine/script_engine.cpp
@@ -219,7 +219,7 @@ namespace Scripting
/*
void ScriptEngine::runMethod(asIScriptObject* obj, std::string methodName)
{
- asIObjectType* type = obj->GetObjectType();
+ asITypeInfo* type = obj->GetObjectType();
asIScriptFunction* method = type->GetMethodByName(methodName.c_str());
if (method == NULL)
Log::error("Scripting", ("runMethod: object does not implement method " + methodName).c_str());
diff --git a/src/scriptengine/scriptarray.cpp b/src/scriptengine/scriptarray.cpp
index 7689f2b..c394c36 100644
--- a/src/scriptengine/scriptarray.cpp
+++ b/src/scriptengine/scriptarray.cpp
@@ -79,7 +79,7 @@ struct SArrayCache
// through 1999 for this purpose, so we should be fine.
const asPWORD ARRAY_CACHE = 1000;
-static void CleanupObjectTypeArrayCache(asIObjectType *type)
+static void CleanupObjectTypeArrayCache(asITypeInfo *type)
{
SArrayCache *cache = reinterpret_cast<SArrayCache*>(type->GetUserData(ARRAY_CACHE));
if( cache )
@@ -89,7 +89,7 @@ static void CleanupObjectTypeArrayCache(asIObjectType *type)
}
}
-CScriptArray* CScriptArray::Create(asIObjectType *ot, asUINT length)
+CScriptArray* CScriptArray::Create(asITypeInfo *ot, asUINT length)
{
asIScriptContext *ctx = asGetActiveContext();
@@ -117,7 +117,7 @@ CScriptArray* CScriptArray::Create(asIObjectType *ot, asUINT length)
return a;
}
-CScriptArray* CScriptArray::Create(asIObjectType *ot, void *initList)
+CScriptArray* CScriptArray::Create(asITypeInfo *ot, void *initList)
{
asIScriptContext *ctx = asGetActiveContext();
@@ -145,7 +145,7 @@ CScriptArray* CScriptArray::Create(asIObjectType *ot, void *initList)
return a;
}
-CScriptArray* CScriptArray::Create(asIObjectType *ot, asUINT length, void *defVal)
+CScriptArray* CScriptArray::Create(asITypeInfo *ot, asUINT length, void *defVal)
{
asIScriptContext *ctx = asGetActiveContext();
@@ -173,7 +173,7 @@ CScriptArray* CScriptArray::Create(asIObjectType *ot, asUINT length, void *defVa
return a;
}
-CScriptArray* CScriptArray::Create(asIObjectType *ot)
+CScriptArray* CScriptArray::Create(asITypeInfo *ot)
{
return CScriptArray::Create(ot, asUINT(0));
}
@@ -183,7 +183,7 @@ CScriptArray* CScriptArray::Create(asIObjectType *ot)
// subtype at compile time, instead of at runtime. The output argument dontGarbageCollect
// allow the callback to tell the engine if the template instance type shouldn't be garbage collected,
// i.e. no asOBJ_GC flag.
-static bool ScriptArrayTemplateCallback(asIObjectType *ot, bool &dontGarbageCollect)
+static bool ScriptArrayTemplateCallback(asITypeInfo *ot, bool &dontGarbageCollect)
{
// Make sure the subtype can be instantiated with a default factory/constructor,
// otherwise we won't be able to instantiate the elements.
@@ -192,7 +192,7 @@ static bool ScriptArrayTemplateCallback(asIObjectType *ot, bool &dontGarbageColl
return false;
if( (typeId & asTYPEID_MASK_OBJECT) && !(typeId & asTYPEID_OBJHANDLE) )
{
- asIObjectType *subtype = ot->GetEngine()->GetObjectTypeById(typeId);
+ asITypeInfo *subtype = ot->GetEngine()->GetTypeInfoById(typeId);
asDWORD flags = subtype->GetFlags();
if( (flags & asOBJ_VALUE) && !(flags & asOBJ_POD) )
{
@@ -266,7 +266,7 @@ static bool ScriptArrayTemplateCallback(asIObjectType *ot, bool &dontGarbageColl
// If it is possible to determine that the handle cannot refer to an object type
// that can potentially form a circular reference with the array then it is not
// necessary to make the array garbage collected.
- asIObjectType *subtype = ot->GetEngine()->GetObjectTypeById(typeId);
+ asITypeInfo *subtype = ot->GetEngine()->GetTypeInfoById(typeId);
asDWORD flags = subtype->GetFlags();
if( !(flags & asOBJ_GC) )
{
@@ -317,7 +317,7 @@ static void RegisterScriptArray_Native(asIScriptEngine *engine)
UNUSED_VAR(r);
// Register the object type user data clean up
- engine->SetObjectTypeUserDataCleanupCallback(CleanupObjectTypeArrayCache, ARRAY_CACHE);
+ engine->SetTypeInfoUserDataCleanupCallback(CleanupObjectTypeArrayCache, ARRAY_CACHE);
// Register the array type as a template
r = engine->RegisterObjectType("array<class T>", 0, asOBJ_REF | asOBJ_GC | asOBJ_TEMPLATE); assert( r >= 0 );
@@ -326,12 +326,12 @@ static void RegisterScriptArray_Native(asIScriptEngine *engine)
r = engine->RegisterObjectBehaviour("array<T>", asBEHAVE_TEMPLATE_CALLBACK, "bool f(int&in, bool&out)", asFUNCTION(ScriptArrayTemplateCallback), asCALL_CDECL); assert( r >= 0 );
// Templates receive the object type as the first parameter. To the script writer this is hidden
- r = engine->RegisterObjectBehaviour("array<T>", asBEHAVE_FACTORY, "array<T>@ f(int&in)", asFUNCTIONPR(CScriptArray::Create, (asIObjectType*), CScriptArray*), asCALL_CDECL); assert( r >= 0 );
- r = engine->RegisterObjectBehaviour("array<T>", asBEHAVE_FACTORY, "array<T>@ f(int&in, uint)", asFUNCTIONPR(CScriptArray::Create, (asIObjectType*, asUINT), CScriptArray*), asCALL_CDECL); assert( r >= 0 );
- r = engine->RegisterObjectBehaviour("array<T>", asBEHAVE_FACTORY, "array<T>@ f(int&in, uint, const T &in)", asFUNCTIONPR(CScriptArray::Create, (asIObjectType*, asUINT, void *), CScriptArray*), asCALL_CDECL); assert( r >= 0 );
+ r = engine->RegisterObjectBehaviour("array<T>", asBEHAVE_FACTORY, "array<T>@ f(int&in)", asFUNCTIONPR(CScriptArray::Create, (asITypeInfo*), CScriptArray*), asCALL_CDECL); assert( r >= 0 );
+ r = engine->RegisterObjectBehaviour("array<T>", asBEHAVE_FACTORY, "array<T>@ f(int&in, uint)", asFUNCTIONPR(CScriptArray::Create, (asITypeInfo*, asUINT), CScriptArray*), asCALL_CDECL); assert( r >= 0 );
+ r = engine->RegisterObjectBehaviour("array<T>", asBEHAVE_FACTORY, "array<T>@ f(int&in, uint, const T &in)", asFUNCTIONPR(CScriptArray::Create, (asITypeInfo*, asUINT, void *), CScriptArray*), asCALL_CDECL); assert( r >= 0 );
// Register the factory that will be used for initialization lists
- r = engine->RegisterObjectBehaviour("array<T>", asBEHAVE_LIST_FACTORY, "array<T>@ f(int&in type, int&in list) {repeat T}", asFUNCTIONPR(CScriptArray::Create, (asIObjectType*, void*), CScriptArray*), asCALL_CDECL); assert( r >= 0 );
+ r = engine->RegisterObjectBehaviour("array<T>", asBEHAVE_LIST_FACTORY, "array<T>@ f(int&in type, int&in list) {repeat T}", asFUNCTIONPR(CScriptArray::Create, (asITypeInfo*, void*), CScriptArray*), asCALL_CDECL); assert( r >= 0 );
// The memory management methods
r = engine->RegisterObjectBehaviour("array<T>", asBEHAVE_ADDREF, "void f()", asMETHOD(CScriptArray,AddRef), asCALL_THISCALL); assert( r >= 0 );
@@ -408,7 +408,7 @@ CScriptArray &CScriptArray::operator=(const CScriptArray &other)
return *this;
}
-CScriptArray::CScriptArray(asIObjectType *ot, void *buf)
+CScriptArray::CScriptArray(asITypeInfo *ot, void *buf)
{
refCount = 1;
gcFlag = false;
@@ -498,7 +498,7 @@ CScriptArray::CScriptArray(asIObjectType *ot, void *buf)
objType->GetEngine()->NotifyGarbageCollectorOfNewObject(this, objType);
}
-CScriptArray::CScriptArray(asUINT length, asIObjectType *ot)
+CScriptArray::CScriptArray(asUINT length, asITypeInfo *ot)
{
refCount = 1;
gcFlag = false;
@@ -549,7 +549,7 @@ CScriptArray::CScriptArray(const CScriptArray &other)
*this = other;
}
-CScriptArray::CScriptArray(asUINT length, void *defVal, asIObjectType *ot)
+CScriptArray::CScriptArray(asUINT length, void *defVal, asITypeInfo *ot)
{
refCount = 1;
gcFlag = false;
@@ -779,7 +779,7 @@ bool CScriptArray::CheckMaxSize(asUINT numElements)
return true;
}
-asIObjectType *CScriptArray::GetArrayObjectType() const
+asITypeInfo *CScriptArray::GetArrayObjectType() const
{
return objType;
}
@@ -899,7 +899,7 @@ void CScriptArray::Construct(SArrayBuffer *buf, asUINT start, asUINT end)
void **d = (void**)(buf->data + start * sizeof(void*));
asIScriptEngine *engine = objType->GetEngine();
- asIObjectType *subType = objType->GetSubType();
+ asITypeInfo *subType = objType->GetSubType();
for( ; d < max; d++ )
{
@@ -1221,7 +1221,7 @@ int CScriptArray::Find(asUINT startAt, void *value) const
if( !cache || (cache->cmpFunc == 0 && cache->eqFunc == 0) )
{
asIScriptContext *ctx = asGetActiveContext();
- asIObjectType* subType = objType->GetEngine()->GetObjectTypeById(subTypeId);
+ asITypeInfo* subType = objType->GetEngine()->GetTypeInfoById(subTypeId);
// Throw an exception
if( ctx )
@@ -1369,7 +1369,7 @@ void CScriptArray::Sort(asUINT startAt, asUINT count, bool asc)
if( !cache || cache->cmpFunc == 0 )
{
asIScriptContext *ctx = asGetActiveContext();
- asIObjectType* subType = objType->GetEngine()->GetObjectTypeById(subTypeId);
+ asITypeInfo* subType = objType->GetEngine()->GetTypeInfoById(subTypeId);
// Throw an exception
if( ctx )
@@ -1512,7 +1512,7 @@ void CScriptArray::CopyBuffer(SArrayBuffer *dst, SArrayBuffer *src)
void **d = (void**)dst->data;
void **s = (void**)src->data;
- asIObjectType *subType = objType->GetSubType();
+ asITypeInfo *subType = objType->GetSubType();
for( ; d < max; d++, s++ )
engine->AssignScriptObject(*d, *s, subType);
}
@@ -1563,7 +1563,7 @@ void CScriptArray::Precache()
// If the sub type is a handle to const, then the methods must be const too
bool mustBeConst = (subTypeId & asTYPEID_HANDLETOCONST) ? true : false;
- asIObjectType *subType = objType->GetEngine()->GetObjectTypeById(subTypeId);
+ asITypeInfo *subType = objType->GetEngine()->GetTypeInfoById(subTypeId);
if( subType )
{
for( asUINT i = 0; i < subType->GetMethodCount(); i++ )
@@ -1712,14 +1712,14 @@ bool CScriptArray::GetFlag()
static void ScriptArrayFactory_Generic(asIScriptGeneric *gen)
{
- asIObjectType *ot = *(asIObjectType**)gen->GetAddressOfArg(0);
+ asITypeInfo *ot = *(asITypeInfo**)gen->GetAddressOfArg(0);
*reinterpret_cast<CScriptArray**>(gen->GetAddressOfReturnLocation()) = CScriptArray::Create(ot);
}
static void ScriptArrayFactory2_Generic(asIScriptGeneric *gen)
{
- asIObjectType *ot = *(asIObjectType**)gen->GetAddressOfArg(0);
+ asITypeInfo *ot = *(asITypeInfo**)gen->GetAddressOfArg(0);
asUINT length = gen->GetArgDWord(1);
*reinterpret_cast<CScriptArray**>(gen->GetAddressOfReturnLocation()) = CScriptArray::Create(ot, length);
@@ -1727,7 +1727,7 @@ static void ScriptArrayFactory2_Generic(asIScriptGeneric *gen)
static void ScriptArrayListFactory_Generic(asIScriptGeneric *gen)
{
- asIObjectType *ot = *(asIObjectType**)gen->GetAddressOfArg(0);
+ asITypeInfo *ot = *(asITypeInfo**)gen->GetAddressOfArg(0);
void *buf = gen->GetArgAddress(1);
*reinterpret_cast<CScriptArray**>(gen->GetAddressOfReturnLocation()) = CScriptArray::Create(ot, buf);
@@ -1735,7 +1735,7 @@ static void ScriptArrayListFactory_Generic(asIScriptGeneric *gen)
static void ScriptArrayFactoryDefVal_Generic(asIScriptGeneric *gen)
{
- asIObjectType *ot = *(asIObjectType**)gen->GetAddressOfArg(0);
+ asITypeInfo *ot = *(asITypeInfo**)gen->GetAddressOfArg(0);
asUINT length = gen->GetArgDWord(1);
void *defVal = gen->GetArgAddress(2);
@@ -1744,7 +1744,7 @@ static void ScriptArrayFactoryDefVal_Generic(asIScriptGeneric *gen)
static void ScriptArrayTemplateCallback_Generic(asIScriptGeneric *gen)
{
- asIObjectType *ot = *(asIObjectType**)gen->GetAddressOfArg(0);
+ asITypeInfo *ot = *(asITypeInfo**)gen->GetAddressOfArg(0);
bool *dontGarbageCollect = *(bool**)gen->GetAddressOfArg(1);
*reinterpret_cast<bool*>(gen->GetAddressOfReturnLocation()) = ScriptArrayTemplateCallback(ot, *dontGarbageCollect);
}
@@ -1941,7 +1941,7 @@ static void RegisterScriptArray_Generic(asIScriptEngine *engine)
int r = 0;
UNUSED_VAR(r);
- engine->SetObjectTypeUserDataCleanupCallback(CleanupObjectTypeArrayCache, ARRAY_CACHE);
+ engine->SetTypeInfoUserDataCleanupCallback(CleanupObjectTypeArrayCache, ARRAY_CACHE);
r = engine->RegisterObjectType("array<class T>", 0, asOBJ_REF | asOBJ_GC | asOBJ_TEMPLATE); assert( r >= 0 );
r = engine->RegisterObjectBehaviour("array<T>", asBEHAVE_TEMPLATE_CALLBACK, "bool f(int&in, bool&out)", asFUNCTION(ScriptArrayTemplateCallback_Generic), asCALL_GENERIC); assert( r >= 0 );
diff --git a/src/scriptengine/scriptarray.hpp b/src/scriptengine/scriptarray.hpp
index a1c0a0a..f65724c 100644
--- a/src/scriptengine/scriptarray.hpp
+++ b/src/scriptengine/scriptarray.hpp
@@ -29,17 +29,17 @@ public:
static void SetMemoryFunctions(asALLOCFUNC_t allocFunc, asFREEFUNC_t freeFunc);
// Factory functions
- static CScriptArray *Create(asIObjectType *ot);
- static CScriptArray *Create(asIObjectType *ot, asUINT length);
- static CScriptArray *Create(asIObjectType *ot, asUINT length, void *defaultValue);
- static CScriptArray *Create(asIObjectType *ot, void *listBuffer);
+ static CScriptArray *Create(asITypeInfo *ot);
+ static CScriptArray *Create(asITypeInfo *ot, asUINT length);
+ static CScriptArray *Create(asITypeInfo *ot, asUINT length, void *defaultValue);
+ static CScriptArray *Create(asITypeInfo *ot, void *listBuffer);
// Memory management
void AddRef() const;
void Release() const;
// Type information
- asIObjectType *GetArrayObjectType() const;
+ asITypeInfo *GetArrayObjectType() const;
int GetArrayTypeId() const;
int GetElementTypeId() const;
@@ -97,15 +97,15 @@ public:
protected:
mutable int refCount;
mutable bool gcFlag;
- asIObjectType *objType;
+ asITypeInfo *objType;
SArrayBuffer *buffer;
int elementSize;
int subTypeId;
// Constructors
- CScriptArray(asIObjectType *ot, void *initBuf); // Called from script when initialized with list
- CScriptArray(asUINT length, asIObjectType *ot);
- CScriptArray(asUINT length, void *defVal, asIObjectType *ot);
+ CScriptArray(asITypeInfo *ot, void *initBuf); // Called from script when initialized with list
+ CScriptArray(asUINT length, asITypeInfo *ot);
+ CScriptArray(asUINT length, void *defVal, asITypeInfo *ot);
CScriptArray(const CScriptArray &other);
virtual ~CScriptArray();
diff --git a/src/scriptengine/scriptstdstring_utils.cpp b/src/scriptengine/scriptstdstring_utils.cpp
index d46fea7..3abd028 100644
--- a/src/scriptengine/scriptstdstring_utils.cpp
+++ b/src/scriptengine/scriptstdstring_utils.cpp
@@ -28,7 +28,7 @@ static CScriptArray *StringSplit(const string &delim, const string &str)
// TODO: This should only be done once
// TODO: This assumes that CScriptArray was already registered
- asIObjectType *arrayType = engine->GetObjectTypeByDecl("array<string>");
+ asITypeInfo *arrayType = engine->GetTypeInfoByDecl("array<string>");
// Create the array object
CScriptArray *array = CScriptArray::Create(arrayType);
--
2.7.4