Skip to content

Commit cfb628f

Browse files
committed
Add storage of final modifier status of java classes in java_class_typet.
1 parent 988b818 commit cfb628f

File tree

4 files changed

+13
-0
lines changed

4 files changed

+13
-0
lines changed

src/java_bytecode/java_bytecode_convert_class.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,7 @@ void java_bytecode_convert_classt::convert(const classt &c)
214214
class_type.set_tag(c.name);
215215
class_type.set(ID_base_name, c.name);
216216
class_type.set(ID_abstract, c.is_abstract);
217+
class_type.set_final(c.is_final);
217218
if(c.is_enum)
218219
{
219220
if(max_array_length != 0 && c.enum_elements > max_array_length)

src/java_bytecode/java_bytecode_parse_tree.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,7 @@ class java_bytecode_parse_treet
178178
bool is_abstract=false;
179179
bool is_enum=false;
180180
bool is_public=false, is_protected=false, is_private=false;
181+
bool is_final = false;
181182
bool attribute_bootstrapmethods_read = false;
182183
size_t enum_elements=0;
183184

src/java_bytecode/java_bytecode_parser.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -495,6 +495,7 @@ void java_bytecode_parsert::rClassFile()
495495
parsed_class.is_public=(access_flags&ACC_PUBLIC)!=0;
496496
parsed_class.is_protected=(access_flags&ACC_PROTECTED)!=0;
497497
parsed_class.is_private=(access_flags&ACC_PRIVATE)!=0;
498+
parsed_class.is_final = (access_flags & ACC_FINAL) != 0;
498499
parsed_class.name=
499500
constant(this_class).type().get(ID_C_base_name);
500501

src/java_bytecode/java_types.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,16 @@ class java_class_typet:public class_typet
3232
return set(ID_access, access);
3333
}
3434

35+
bool get_final()
36+
{
37+
return get_bool(ID_final);
38+
}
39+
40+
void set_final(bool is_final)
41+
{
42+
set(ID_final, is_final);
43+
}
44+
3545
typedef std::vector<symbol_exprt> java_lambda_method_handlest;
3646

3747
const java_lambda_method_handlest &lambda_method_handles() const

0 commit comments

Comments
 (0)