st.WHAT = obj;
return st.WHAT;
}
public void compose(ThreadContext tc, STable st, SixModelObject repr_info_hash) {
SixModelObject repr_info = repr_info_hash.at_key_boxed(tc, "attribute");
CStructREPRData repr_data = new CStructREPRData();
long mroLength = repr_info.elems(tc);
List<AttrInfo> attrInfos = new ArrayList<AttrInfo>();
for (long i = mroLength - 1; i >= 0; i--) {
SixModelObject entry = repr_info.at_pos_boxed(tc, i);
SixModelObject attrs = entry.at_pos_boxed(tc, 1);
long parents = entry.at_pos_boxed(tc, 2).elems(tc);
if (parents <= 1) {
long numAttrs = attrs.elems(tc);
for (long j = 0; j < numAttrs; j++) {
SixModelObject attrHash = attrs.at_pos_boxed(tc, j);
AttrInfo info = new AttrInfo();
info.name = attrHash.at_key_boxed(tc, "name").get_str(tc);
info.type = attrHash.at_key_boxed(tc, "type");
StorageSpec spec = info.type.st.REPR.get_storage_spec(tc, info.type.st);
info.bits = spec.bits;
repr_data.fieldTypes.put(info.name, info);
if (info.type == null) {