FreeList(spec->__anon1.__anon1.templateArgs, (void *)(FreeTemplateArgument));
spec->__anon1.__anon1.templateArgs = (((void *)0));
}
+if(spec->__anon1.__anon1.nsSpec)
+{
+FreeSpecifier(spec->__anon1.__anon1.nsSpec);
+spec->__anon1.__anon1.nsSpec = (((void *)0));
+}
break;
case 5:
if(spec->__anon1.__anon1.extDecl)
struct External * external = (((void *)0));
struct Symbol * classSym = FindClass(name);
struct __ecereNameSpace__ecere__sys__OldList * curDeclarations = (((void *)0));
-struct Specifier * curSpec = (((void *)0));
if(!inCompiler || !classSym)
return (((void *)0));
for(spec = external->__anon1.declaration->__anon1.__anon1.specifiers ? (*external->__anon1.declaration->__anon1.__anon1.specifiers).first : (((void *)0)); spec; spec = spec->next)
if(spec->type == 3 || spec->type == 4)
{
-curSpec = spec;
curDeclarations = spec->__anon1.__anon2.definitions;
break;
}
struct __ecereNameSpace__ecere__sys__OldList * declarations = (((void *)0));
char structName[1024];
unsigned int addedPadding = 0;
+struct Specifier * curSpec = (((void *)0));
classSym->declaring++;
if(strchr(classSym->string, '<'))
{
if(classSym->__anon1.registered->templateClass)
-{
external = _DeclareStruct(neededBy, classSym->__anon1.registered->templateClass->fullName, skipNoHead, needDereference, fwdDecl);
classSym->declaring--;
-}
return external;
}
structName[0] = 0;
declarations = MkList();
AddMembers(external, declarations, classSym->__anon1.registered, 0, (((void *)0)), classSym->__anon1.registered, &addedPadding);
}
+if(external->__anon1.declaration)
+{
+struct Specifier * spec;
+
+for(spec = external->__anon1.declaration->__anon1.__anon1.specifiers ? (*external->__anon1.declaration->__anon1.__anon1.specifiers).first : (((void *)0)); spec; spec = spec->next)
+if(spec->type == 3 || spec->type == 4)
+{
+curSpec = spec;
+curDeclarations = spec->__anon1.__anon2.definitions;
+break;
+}
+}
if(declarations && (!(*declarations).count || ((*declarations).count == 1 && addedPadding)))
{
FreeList(declarations, (void *)(FreeClassDef));
else if(dest->kind == 1 && (source->kind == 24 || source->kind == 1 || source->kind == 15 || source->kind == 2 || source->kind == 3) && (dest->isSigned ? (value >= -128 && value <= 127) : (value >= 0 && value <= 255)))
{
if(source->kind == 3)
+{
+FreeType(dest);
+FreeType(source);
+if(backupSourceExpType)
+FreeType(backupSourceExpType);
return 1;
+}
else
{
specs = MkList();
else if(dest->kind == 2 && (source->kind == 15 || source->kind == 24 || source->kind == 1 || source->kind == 2 || (source->kind == 3 && (dest->isSigned ? (value >= -32768 && value <= 32767) : (value >= 0 && value <= 65535)))))
{
if(source->kind == 3)
+{
+FreeType(dest);
+FreeType(source);
+if(backupSourceExpType)
+FreeType(backupSourceExpType);
return 1;
+}
else
{
specs = MkList();
FreeList(spec.templateArgs, FreeTemplateArgument);
spec.templateArgs = null;
}
+ if(spec.nsSpec)
+ {
+ FreeSpecifier(spec.nsSpec);
+ spec.nsSpec = null;
+ }
break;
case extendedSpecifier:
if(spec.extDecl)
External external = null;
Symbol classSym = FindClass(name);
OldList * curDeclarations = null;
- Specifier curSpec = null;
if(!inCompiler || !classSym) return null;
for(spec = external.declaration.specifiers ? external.declaration.specifiers->first : null; spec; spec = spec.next)
if(spec.type == structSpecifier || spec.type == unionSpecifier)
{
- curSpec = spec;
curDeclarations = spec.definitions;
break;
}
OldList * declarations = null;
char structName[1024];
bool addedPadding = false;
+ Specifier curSpec = null;
classSym.declaring++;
if(strchr(classSym.string, '<'))
{
if(classSym.registered.templateClass)
- {
external = _DeclareStruct(neededBy, classSym.registered.templateClass.fullName, skipNoHead, needDereference, fwdDecl);
- classSym.declaring--;
- }
+ classSym.declaring--;
return external;
}
AddMembers(external, declarations, classSym.registered, false, null, classSym.registered, &addedPadding);
}
+ if(external.declaration)
+ {
+ Specifier spec;
+ for(spec = external.declaration.specifiers ? external.declaration.specifiers->first : null; spec; spec = spec.next)
+ if(spec.type == structSpecifier || spec.type == unionSpecifier)
+ {
+ curSpec = spec;
+ curDeclarations = spec.definitions;
+ break;
+ }
+ }
+
if(declarations && (!declarations->count || (declarations->count == 1 && addedPadding)))
{
FreeList(declarations, FreeClassDef);
(dest.isSigned ? (value >= -128 && value <= 127) : (value >= 0 && value <= 255)))
{
if(source.kind == intType)
+ {
+ FreeType(dest);
+ FreeType(source);
+ if(backupSourceExpType) FreeType(backupSourceExpType);
return true;
+ }
else
{
specs = MkList();
(source.kind == intType && (dest.isSigned ? (value >= -32768 && value <= 32767) : (value >= 0 && value <= 65535)))))
{
if(source.kind == intType)
+ {
+ FreeType(dest);
+ FreeType(source);
+ if(backupSourceExpType) FreeType(backupSourceExpType);
return true;
+ }
else
{
specs = MkList();