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

Function _parse_blutter_pp

adapters/python/adapter_template.py:413–462  ·  view source on GitHub ↗
(pool_path: Path)

Source from the content-addressed store, hash-verified

411 if tgt in prologues or count >= 2:
412 starts.add(tgt)
413
414 sorted_starts = sorted(s for s in starts if base_va <= s < hi)
415 out: List[dict] = []
416 for i, start in enumerate(sorted_starts):
417 nxt = sorted_starts[i + 1] if i + 1 < len(sorted_starts) else hi
418 size = min(nxt - start, 0x8000)
419 if size <= 0:
420 continue
421 out.append(
422 {
423 "id": len(out),
424 "name": None,
425 "owner": None,
426 "code": {"start_va": int(start), "size": int(size)},
427 "code_section_va": int(base_va),
428 "provenance": HEURISTIC,
429 }
430 )
431 return out
432
433
434def _build_internal_model(request: dict) -> dict:
435 vm_data = _read_region(request, VM_DATA)
436 iso_data = _read_region(request, ISOLATE_DATA)
437 iso_instr = _read_region(request, ISOLATE_INSTRUCTIONS)
438 iso_va = _region_va(request, ISOLATE_INSTRUCTIONS)
439
440 strings = _extract_strings(vm_data + iso_data)
441 uris = _library_uris(strings)
442 functions = _recover_code_ranges(iso_instr, iso_va)
443 entries = [
444 {
445 "index": i,
446 "kind": "string",
447 "value": s,
448 "target_va": None,
449 "provenance": HEURISTIC,
450 "confidence": None,
451 }
452 for i, s in enumerate(strings)
453 ]
454
455 capabilities = {
456 "libraries": PARTIAL if uris else UNAVAILABLE,
457 "classes": UNAVAILABLE,
458 "class_relationships": UNAVAILABLE,
459 "functions": PARTIAL if functions else UNAVAILABLE,
460 "function_names": UNAVAILABLE,
461 "object_pool": PARTIAL if entries else UNAVAILABLE,
462 "pool_index_space": UNAVAILABLE,
463 }
464 diagnostics = [
465 _diagnostic(

Callers 1

_build_blutter_modelFunction · 0.85

Calls 1

Tested by

no test coverage detected