Lines Matching refs:layout
343 struct objc_struct_layout layout;
346 objc_layout_structure (type, &layout);
347 while (objc_layout_structure_next_member (&layout))
349 objc_layout_finish_structure (&layout, &size, NULL);
536 struct objc_struct_layout layout;
539 objc_layout_structure (type, &layout);
540 while (objc_layout_structure_next_member (&layout))
542 objc_layout_finish_structure (&layout, NULL, &align);
1052 struct objc_struct_layout layout;
1055 objc_layout_structure (type, &layout);
1056 while (objc_layout_structure_next_member (&layout))
1061 objc_layout_structure_get_info (&layout, &position, &align, &type);
1073 struct objc_struct_layout *layout)
1084 layout->original_type = type;
1096 layout->type = type;
1097 layout->prev_type = NULL;
1098 layout->record_size = 0;
1099 layout->record_align = __CHAR_BIT__;
1101 layout->record_align = MAX (layout->record_align, STRUCTURE_SIZE_BOUNDARY);
1105 objc_layout_structure_next_member (struct objc_struct_layout *layout)
1118 BOOL unionp = layout->original_type[-1] == _C_UNION_B;
1121 if (layout->prev_type)
1123 type = objc_skip_type_qualifiers (layout->prev_type);
1125 layout->record_size = MAX (layout->record_size,
1129 layout->record_size += objc_sizeof_type (type) * __CHAR_BIT__;
1141 layout->record_size += bfld_field_size;
1145 if ((unionp && *layout->type == _C_UNION_E)
1146 || (!unionp && *layout->type == _C_STRUCT_E))
1150 layout->type = objc_skip_variable_name (layout->type);
1151 type = objc_skip_type_qualifiers (layout->type);
1182 layout->record_align = MAX (layout->record_align, desired_align);
1191 layout->record_align = MAX (layout->record_align, desired_align);
1210 layout->record_align = MAX (layout->record_align, type_align);
1214 layout->record_align = MAX (layout->record_align, desired_align);
1222 layout->record_size = atoi (type + 1);
1223 else if (layout->record_size % desired_align != 0)
1227 layout->record_size = ROUND (layout->record_size, desired_align);
1232 layout->prev_type = layout->type;
1233 layout->type = objc_skip_typespec (layout->type); /* skip component */
1238 void objc_layout_finish_structure (struct objc_struct_layout *layout,
1242 BOOL unionp = layout->original_type[-1] == _C_UNION_B;
1243 if (layout->type
1244 && ((!unionp && *layout->type == _C_STRUCT_E)
1245 || (unionp && *layout->type == _C_UNION_E)))
1251 layout->record_align = ROUND_TYPE_ALIGN (layout->original_type-1,
1253 layout->record_align);
1255 layout->record_align = MAX (1, layout->record_align);
1259 layout->record_size = ROUND (layout->record_size, layout->record_align);
1261 layout->type = NULL;
1264 *size = layout->record_size / __CHAR_BIT__;
1266 *align = layout->record_align / __CHAR_BIT__;
1269 void objc_layout_structure_get_info (struct objc_struct_layout *layout,
1275 *offset = layout->record_size / __CHAR_BIT__;
1277 *align = layout->record_align / __CHAR_BIT__;
1279 *type = layout->prev_type;