LttType *ltt_type_element_type(LttType *t)
{
- if(t->type_class != LTT_ARRAY || t->type_class != LTT_SEQUENCE)
+ if(t->type_class != LTT_ARRAY && t->type_class != LTT_SEQUENCE)
return NULL;
return t->element_type[0];
}
unsigned ltt_type_member_number(LttType *t)
{
- if(t->type_class != LTT_STRUCT || t->type_class != LTT_UNION)
+ if(t->type_class != LTT_STRUCT && t->type_class != LTT_UNION)
return 0;
return t->element_number;
}
LttType *ltt_type_member_type(LttType *t, unsigned i)
{
if(t->type_class != LTT_STRUCT) return NULL;
- if(i > t->element_number || i == 0 ) return NULL;
- return t->element_type[i-1];
+ if(i >= t->element_number || i < 0 ) return NULL;
+ return t->element_type[i];
}
/*****************************************************************************
char *ltt_enum_string_get(LttType *t, unsigned i)
{
if(t->type_class != LTT_ENUM) return NULL;
- if(i > t->element_number || i == 0 ) return NULL;
- return t->enum_strings[i-1];
+ if(i >= t->element_number || i < 0 ) return NULL;
+ return t->enum_strings[i];
}
/*****************************************************************************
LttField *ltt_field_element(LttField *f)
{
- if(f->field_type->type_class != LTT_ARRAY ||
+ if(f->field_type->type_class != LTT_ARRAY &&
f->field_type->type_class != LTT_SEQUENCE)
return NULL;
LttField *ltt_field_member(LttField *f, unsigned i)
{
if(f->field_type->type_class != LTT_STRUCT) return NULL;
- if(i==0 || i>f->field_type->element_number) return NULL;
- return f->child[i-1];
+ if(i < 0 || i >= f->field_type->element_number) return NULL;
+ return f->child[i];
}
/*****************************************************************************