MCPcopy Create free account
hub / github.com/emscripten-core/emscripten / get_function_names

Method get_function_names

tools/webassembly.py:546–571  ·  view source on GitHub ↗
(self, remove_imports=True)

Source from the content-addressed store, hash-verified

544
545 @memoize
546 def get_function_names(self, remove_imports=True):
547 num_funcs = self.num_imported_funcs() + len(self.get_functions())
548 names = [None] * num_funcs
549
550 name_section = self.get_custom_section('name')
551 if not name_section:
552 return names
553
554 self.seek(name_section.offset)
555 self.read_string() # section name
556 section_end = name_section.offset + name_section.size
557
558 while self.tell() < section_end:
559 subsection_id = self.read_byte()
560 subsection_size = self.read_uleb()
561 if subsection_id == 1: # function names
562 count = self.read_uleb()
563 for _ in range(count):
564 func_idx = self.read_uleb()
565 func_name = self.read_string()
566 assert func_idx < len(names)
567 names[func_idx] = func_name
568 else:
569 self.skip(subsection_size)
570
571 return names[self.num_imported_funcs():] if remove_imports else names
572
573 def has_name_section(self):
574 return self.get_custom_section('name') is not None

Callers 1

Calls 10

num_imported_funcsMethod · 0.95
get_functionsMethod · 0.95
get_custom_sectionMethod · 0.95
seekMethod · 0.95
read_stringMethod · 0.95
tellMethod · 0.95
read_byteMethod · 0.95
read_ulebMethod · 0.95
skipMethod · 0.95
rangeFunction · 0.50

Tested by

no test coverage detected