MCPcopy Create free account
hub / github.com/caverav/flutterdec / _build_blutter_model

Function _build_blutter_model

adapters/python/adapter_template.py:667–698  ·  view source on GitHub ↗
(
    vm_data: bytes,
    iso_data: bytes,
    default_snapshot_hash: str,
    default_version: str,
    input_path: Optional[str],
    libapp_path: Optional[str],
)

Source from the content-addressed store, hash-verified

665 size = int(m_addr.group(2), 16)
666 except ValueError:
667 continue
668 if entry in seen_entry:
669 pending_name = None
670 continue
671 seen_entry.add(entry)
672
673 functions.append(
674 {
675 "id": len(functions),
676 # Scraped out of blutter's rendered source, so a guess about
677 # the text, never `exact`.
678 "name": _name(pending_name, HEURISTIC) if pending_name else None,
679 "owner": pending_owner if pending_name else current_class,
680 "code": {"start_va": entry, "size": max(size, 1)},
681 "code_section_va": 0,
682 "provenance": DERIVED,
683 }
684 )
685 pending_name = None
686 pending_owner = None
687
688 libraries = [
689 {"id": lid, "uri": uri, "display_name": None, "provenance": DERIVED}
690 for uri, lid in library_ids.items()
691 ]
692 classes = []
693 for (library, name), cid in class_ids.items():
694 super_name = class_supers.get(cid)
695 super_id = class_names.get(super_name) if super_name else None
696 classes.append(
697 {
698 "id": cid,
699 "name": name,
700 "library": library,
701 # Only an edge whose target is a class we actually recovered.

Callers 1

entrypointFunction · 0.85

Calls 7

_run_blutter_dumpFunction · 0.85
_parse_blutter_asmFunction · 0.85
_parse_blutter_ppFunction · 0.85
_pool_entriesFunction · 0.85
_extract_stringsFunction · 0.85
_detect_snapshot_hashFunction · 0.85

Tested by

no test coverage detected