Lines Matching refs:desc
349 const char* desc = type->GetDescriptor(&descriptor_string); in Write() local
350 size_t class_offset = StartClassTag(desc); in Write()
536 size_t WriteTypeDeclaration(const std::string& desc) { in WriteTypeDeclaration() argument
539 DCHECK(!desc.empty()); in WriteTypeDeclaration()
540 const auto it = type_cache_.find(desc); in WriteTypeDeclaration()
546 if (desc[0] == 'L') { in WriteTypeDeclaration()
548 size_t class_offset = StartClassTag(desc.c_str()); in WriteTypeDeclaration()
555 } else if (desc[0] == '[') { in WriteTypeDeclaration()
557 size_t element_type = WriteTypeDeclaration(desc.substr(1)); in WriteTypeDeclaration()
568 DCHECK_EQ(desc.size(), 1u); in WriteTypeDeclaration()
573 switch (desc[0]) { in WriteTypeDeclaration()
618 LOG(FATAL) << "Unknown dex type descriptor: \"" << desc << "\""; in WriteTypeDeclaration()
629 type_cache_.emplace(desc, offset); in WriteTypeDeclaration()
635 size_t StartClassTag(const char* desc) { in StartClassTag() argument
636 std::string name = SetNamespaceForClass(desc); in StartClassTag()
648 std::string SetNamespaceForClass(const char* desc) { in SetNamespaceForClass() argument
649 DCHECK(desc != nullptr && desc[0] == 'L'); in SetNamespaceForClass()
650 desc++; // Skip the initial 'L'. in SetNamespaceForClass()
652 for (const char* end; (end = strchr(desc, '/')) != nullptr; desc = end + 1, ++depth) { in SetNamespaceForClass()
656 if (name.compare(0, name.size(), desc, end - desc) == 0) { in SetNamespaceForClass()
663 std::string name(desc, end - desc); in SetNamespaceForClass()
668 return std::string(desc, strchr(desc, ';') - desc); in SetNamespaceForClass()