MCPcopy Create free account
hub / github.com/ELMERIKH/PyinMemoryPE / Accumulator

Class Accumulator

pythonmemorymodule/pefile.py:1342–1378  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1340@lru_cache(maxsize=2048, copy=False)
1341def set_bitfields_format(format):
1342 class Accumulator:
1343 def __init__(self, fmt, comp_fields):
1344 self._subfields = []
1345 # add a prefix to distinguish the artificially created compoud field
1346 # from regular fields
1347 self._name = "~"
1348 self._type = None
1349 self._bits_left = 0
1350 self._comp_fields = comp_fields
1351 self._format = fmt
1352
1353 def wrap_up(self):
1354 if self._type is None:
1355 return
1356 self._format.append(self._type + "," + self._name)
1357 self._comp_fields[len(self._format) - 1] = (self._type, self._subfields)
1358 self._name = "~"
1359 self._type = None
1360 self._subfields = []
1361
1362 def new_type(self, tp):
1363 self._bits_left = STRUCT_SIZEOF_TYPES[tp] * 8
1364 self._type = tp
1365
1366 def add_subfield(self, name, bitcnt):
1367 self._name += name
1368 self._bits_left -= bitcnt
1369 self._subfields.append((name, bitcnt))
1370
1371 def get_type(self):
1372 return self._type
1373
1374 def get_name(self):
1375 return self._name
1376
1377 def get_bits_left(self):
1378 return self._bits_left
1379
1380 old_fmt = []
1381 comp_fields = {}

Callers 1

set_bitfields_formatFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected