CBMC
lazy_class_to_declared_symbols_mapt Class Reference

Map classes to the symbols they declare but is only computed once it is needed and the map is then kept. More...

#include <java_bytecode_language.h>

+ Collaboration diagram for lazy_class_to_declared_symbols_mapt:

Public Member Functions

 lazy_class_to_declared_symbols_mapt ()=default
 
std::unordered_multimap< irep_idt, symbolt > & get (const symbol_table_baset &symbol_table)
 
void reinitialize ()
 

Private Attributes

bool initialized = false
 
std::unordered_multimap< irep_idt, symboltmap
 

Detailed Description

Map classes to the symbols they declare but is only computed once it is needed and the map is then kept.

Note that it only includes function and field symbols (and not for example, local variables), these are produced in the convert-class phase. Calling get before the symbol table is properly filled with these symbols, would make later calls return an outdated map. The lazy_class_to_declared_symbols_mapt would then need to be reinitialized. Similarly if some transformation creates or deletes function or field symbols in the symbol table, then the map would get out of date and would need to be reinitialized.

Definition at line 186 of file java_bytecode_language.h.

Constructor & Destructor Documentation

◆ lazy_class_to_declared_symbols_mapt()

lazy_class_to_declared_symbols_mapt::lazy_class_to_declared_symbols_mapt ( )
default

Member Function Documentation

◆ get()

std::unordered_multimap< irep_idt, symbolt > & lazy_class_to_declared_symbols_mapt::get ( const symbol_table_baset symbol_table)

Definition at line 124 of file java_bytecode_language.cpp.

◆ reinitialize()

void lazy_class_to_declared_symbols_mapt::reinitialize ( )

Definition at line 134 of file java_bytecode_language.cpp.

Member Data Documentation

◆ initialized

bool lazy_class_to_declared_symbols_mapt::initialized = false
private

Definition at line 197 of file java_bytecode_language.h.

◆ map

std::unordered_multimap<irep_idt, symbolt> lazy_class_to_declared_symbols_mapt::map
private

Definition at line 198 of file java_bytecode_language.h.


The documentation for this class was generated from the following files: