- multiname_t*m_name = multiname_fromstring(name);
- multiname_t*m_type = multiname_fromstring(type);
- trait_t*t = trait_new_member(m_type, m_name, 0);
- t->slot_id = list_length(cls->traits);
- list_append(cls->traits, t);
+ multiname_t*m_name = multiname_clone(name);
+ multiname_t*m_type = multiname_clone(type);
+ trait_t*t = trait_new_member(&cls->traits, m_type, m_name, 0);
+ return t;
+}
+trait_t* abc_class_staticslot(abc_class_t*cls, multiname_t*name, multiname_t*type)
+{
+ abc_file_t*file = cls->file;
+ multiname_t*m_name = multiname_clone(name);
+ multiname_t*m_type = multiname_clone(type);
+ trait_t*t = trait_new_member(&cls->static_traits, m_type, m_name, 0);
+ return t;
+}
+
+
+trait_t* abc_class_find_slotid(abc_class_t*cls, int slotid)
+{
+ trait_list_t*l;
+ trait_t*t=0;
+ for(l=cls->traits;l;l=l->next) {
+ if(l->trait->slot_id==slotid) {
+ t=l->trait;
+ break;
+ }
+ }
+ return t;