}
static Eina_Bool
-_validate_part(Validate_State *vals, Eolian_Part *part, Eina_Hash *nhash)
+_validate_part(Validate_State *vals, Eolian_Part *part, Eina_Hash *phash)
{
- const Eolian_Object *oobj = eina_hash_find(nhash, &part->base.name);
+ const Eolian_Object *oobj = eina_hash_find(phash, &part->base.name);
if (oobj)
{
_eo_parser_log(&part->base,
- "part '%s' conflicts with another symbol (at %s:%d:%d)",
+ "part '%s' conflicts with another part (at %s:%d:%d)",
part->base.name, oobj->file, oobj->line, oobj->column);
vals->warned = EINA_TRUE;
}
if (part->base.validated)
{
if (!oobj)
- eina_hash_add(nhash, &part->base.name, &part->base);
+ eina_hash_add(phash, &part->base.name, &part->base);
return EINA_TRUE;
}
part->klass = pcl;
if (!oobj)
- eina_hash_add(nhash, &part->base.name, &part->base);
+ eina_hash_add(phash, &part->base.name, &part->base);
_reset_stable(vals, was_stable, EINA_TRUE);
return _validate(&part->base);
static Eina_Bool
_validate_class(Validate_State *vals, Eolian_Class *cl,
- Eina_Hash *nhash, Eina_Hash *ehash, Eina_Hash *chash)
+ Eina_Hash *nhash, Eina_Hash *ehash, Eina_Hash *phash, Eina_Hash *chash)
{
Eina_List *l;
Eolian_Function *func;
_eo_parser_log(&cl->base, "non-beta class cannot have beta parent");
return EINA_FALSE;
}
- if (!_validate_class(vals, cl->parent, nhash, ehash, chash))
+ if (!_validate_class(vals, cl->parent, nhash, ehash, phash, chash))
return EINA_FALSE;
}
/* it's ok, interfaces are allowed */
break;
}
- if (!_validate_class(vals, icl, nhash, ehash, chash))
+ if (!_validate_class(vals, icl, nhash, ehash, phash, chash))
return EINA_FALSE;
}
if (cl->type == EOLIAN_CLASS_ABSTRACT || cl->type == EOLIAN_CLASS_REGULAR)
return EINA_FALSE;
EINA_LIST_FOREACH(cl->parts, l, part)
- if (!_validate_part(vals, part, nhash))
+ if (!_validate_part(vals, part, phash))
return EINA_FALSE;
EINA_LIST_FOREACH(cl->implements, l, impl)
iter = eolian_unit_classes_get(src);
Eina_Hash *nhash = eina_hash_pointer_new(NULL);
Eina_Hash *ehash = eina_hash_pointer_new(NULL);
+ Eina_Hash *phash = eina_hash_pointer_new(NULL);
Eina_Hash *chash = eina_hash_pointer_new(NULL);
EINA_ITERATOR_FOREACH(iter, cl)
{
eina_hash_free_buckets(nhash);
eina_hash_free_buckets(ehash);
+ eina_hash_free_buckets(phash);
eina_hash_free_buckets(chash);
- if (!_validate_class(&vals, cl, nhash, ehash, chash))
+ if (!_validate_class(&vals, cl, nhash, ehash, phash, chash))
{
eina_iterator_free(iter);
eina_hash_free(nhash);
eina_hash_free(ehash);
+ eina_hash_free(phash);
eina_hash_free(chash);
return EINA_FALSE;
}
}
eina_hash_free(chash);
+ eina_hash_free(phash);
eina_hash_free(ehash);
eina_hash_free(nhash);
eina_iterator_free(iter);