{
if(src)
src->refCount++;
-if(src->kind == 20)
-{
-if(src->__anon1.templateParameter && src->__anon1.templateParameter->type == 0)
+if(src->kind == 20 && src->__anon1.templateParameter && src->__anon1.templateParameter->type == 0)
{
struct Type * newType = (((void *)0));
src = newType;
}
}
-}
if(src && src->kind == 8 && src->__anon1._class)
{
struct __ecereNameSpace__ecere__com__Class * sc = src->__anon1._class->__anon1.registered;
{
if(dest)
dest->refCount++;
-if(dest->__anon1.templateParameter && dest->__anon1.templateParameter->type == 0)
+if(dest->kind == 20 && dest->__anon1.templateParameter && dest->__anon1.templateParameter->type == 0)
{
struct Type * newType = (((void *)0));
if(e.type != castExp || !IsVoidPtrCast(e.cast.typeName))
{
if(src) src.refCount++;
- if(src.kind == templateType)
+ if(src.kind == templateType && src.templateParameter && src.templateParameter.type == type)
{
- if(src.templateParameter && src.templateParameter.type == type)
+ Type newType = null;
+ if(src.templateParameter.dataTypeString)
+ newType = ProcessTypeString(src.templateParameter.dataTypeString, false);
+ else if(src.templateParameter.dataType)
+ newType = ProcessType(src.templateParameter.dataType.specifiers, src.templateParameter.dataType.decl);
+ if(newType)
{
- Type newType = null;
- if(src.templateParameter.dataTypeString)
- newType = ProcessTypeString(src.templateParameter.dataTypeString, false);
- else if(src.templateParameter.dataType)
- newType = ProcessType(src.templateParameter.dataType.specifiers, src.templateParameter.dataType.decl);
- if(newType)
- {
- FreeType(src);
- src = newType;
- }
+ FreeType(src);
+ src = newType;
}
}
if(src && src.kind == classType && src._class)
{
if(dest) dest.refCount++;
- if(dest.templateParameter && dest.templateParameter.type == type)
+ if(dest.kind == templateType && dest.templateParameter && dest.templateParameter.type == type)
{
Type newType = null;
if(dest.templateParameter.dataTypeString)