Lines Matching refs:container

63 std::unordered_map<Type::TypeId, PrimitiveTypeItem *> CreatePrimitiveTypes(ItemContainer *container)
66 res.insert({Type::TypeId::VOID, container->GetOrCreatePrimitiveTypeItem(Type::TypeId::VOID)});
67 res.insert({Type::TypeId::U1, container->GetOrCreatePrimitiveTypeItem(Type::TypeId::U1)});
68 res.insert({Type::TypeId::I8, container->GetOrCreatePrimitiveTypeItem(Type::TypeId::I8)});
69 res.insert({Type::TypeId::U8, container->GetOrCreatePrimitiveTypeItem(Type::TypeId::U8)});
70 res.insert({Type::TypeId::I16, container->GetOrCreatePrimitiveTypeItem(Type::TypeId::I16)});
71 res.insert({Type::TypeId::U16, container->GetOrCreatePrimitiveTypeItem(Type::TypeId::U16)});
72 res.insert({Type::TypeId::I32, container->GetOrCreatePrimitiveTypeItem(Type::TypeId::I32)});
73 res.insert({Type::TypeId::U32, container->GetOrCreatePrimitiveTypeItem(Type::TypeId::U32)});
74 res.insert({Type::TypeId::I64, container->GetOrCreatePrimitiveTypeItem(Type::TypeId::I64)});
75 res.insert({Type::TypeId::U64, container->GetOrCreatePrimitiveTypeItem(Type::TypeId::U64)});
76 res.insert({Type::TypeId::F32, container->GetOrCreatePrimitiveTypeItem(Type::TypeId::F32)});
77 res.insert({Type::TypeId::F64, container->GetOrCreatePrimitiveTypeItem(Type::TypeId::F64)});
78 res.insert({Type::TypeId::TAGGED, container->GetOrCreatePrimitiveTypeItem(Type::TypeId::TAGGED)});
149 ItemContainer *container, const Value *value, std::vector<panda_file::LiteralItem> *out,
194 auto *string_item = container->GetOrCreateStringItem(value->GetAsScalar()->GetValue<std::string>());
216 ScalarValueItem *AsmEmitter::CreateScalarStringValueItem(ItemContainer *container, const Value *value,
219 auto *string_item = container->GetOrCreateStringItem(value->GetAsScalar()->GetValue<std::string>());
221 out->emplace_back(string_item, container);
225 return container->CreateItem<ScalarValueItem>(string_item);
230 ItemContainer *container, const Value *value, std::vector<ScalarValueItem> *out,
244 class_item = container->GetOrCreateForeignClassItem(type.GetDescriptor());
248 out->emplace_back(class_item, container);
252 return container->CreateItem<ScalarValueItem>(class_item);
257 ItemContainer *container, const Value *value, std::vector<ScalarValueItem> *out, const Program &program,
271 out->emplace_back(method_item, container);
275 return container->CreateItem<ScalarValueItem>(method_item);
280 ItemContainer *container, const Value *value, std::vector<ScalarValueItem> *out, const Program &program,
288 out->emplace_back(literalarray_item, container);
292 return container->CreateItem<ScalarValueItem>(literalarray_item);
296 ScalarValueItem *AsmEmitter::CreateScalarEnumValueItem(ItemContainer *container, const Value *value,
308 out->emplace_back(field_item, container);
312 return container->CreateItem<ScalarValueItem>(field_item);
317 ItemContainer *container, const Value *value, std::vector<ScalarValueItem> *out, const Program &program,
321 auto *annotation_item = CreateAnnotationItem(container, annotation, program, entities);
327 out->emplace_back(annotation_item, container);
331 return container->CreateItem<ScalarValueItem>(annotation_item);
335 ScalarValueItem *AsmEmitter::CreateScalarValueItem(ItemContainer *container, const Value *value,
350 return CreateScalarPrimValueItem<uint32_t>(container, value, out);
354 return CreateScalarPrimValueItem<uint64_t>(container, value, out);
357 return CreateScalarPrimValueItem<float>(container, value, out);
360 return CreateScalarPrimValueItem<double>(container, value, out);
363 return CreateScalarStringValueItem(container, value, out);
366 return CreateScalarRecordValueItem(container, value, out, entities.class_items);
369 return CreateScalarMethodValueItem(container, value, out, program, entities.method_items);
372 return CreateScalarEnumValueItem(container, value, out, entities.field_items);
375 return CreateScalarAnnotationValueItem(container, value, out, program, entities);
378 return CreateScalarLiteralArrayItem(container, value, out, program, entities.literalarray_items);
388 ValueItem *AsmEmitter::CreateValueItem(ItemContainer *container, const Value *value, const Program &program,
396 CreateScalarValueItem(container, &elem_value, &elements, program, entities);
403 return container->CreateItem<ArrayValueItem>(panda_file::Type(GetTypeId(component_type)),
407 return CreateScalarValueItem(container, value, nullptr, program, entities);
413 AnnotationItem *AsmEmitter::CreateAnnotationItem(ItemContainer *container, const AnnotationData &annotation,
449 auto *item = CreateValueItem(container, value, program, entities);
455 item_elements.emplace_back(container->GetOrCreateStringItem(name), item);
460 return container->CreateItem<AnnotationItem>(cls, std::move(item_elements), std::move(tag_elements));
463 MethodHandleItem *AsmEmitter::CreateMethodHandleItem(ItemContainer *container, const MethodHandle &mh,
473 item = container->CreateItem<MethodHandleItem>(mh.type, fields.at(mh.item_name));
481 item = container->CreateItem<MethodHandleItem>(mh.type, methods.at(mh.item_name));
493 bool AsmEmitter::AddAnnotations(T *item, ItemContainer *container, const AnnotationMetadata &metadata,
497 auto *annotation_item = CreateAnnotationItem(container, annotation, program, entities);
1633 void Function::EmitLocalVariable(panda_file::LineNumberProgramItem *program, ItemContainer *container,
1642 StringItem *variable_name = container->GetOrCreateStringItem(v.name);
1643 StringItem *variable_type = container->GetOrCreateStringItem(v.signature);
1647 StringItem *type_signature = container->GetOrCreateStringItem(v.signature_type);
1733 ItemContainer *container, std::vector<uint8_t> *constant_pool,
1779 EmitLocalVariable(program, container, constant_pool, pc_inc, end, iter->variable_index);