26 #define SHARE_CDS_REGENERATEDCLASSES_HPP
27
28 #include "memory/allStatic.hpp"
29 #include "utilities/globalDefinitions.hpp"
30
31 class InstanceKlass;
32
33 // CDS regenerates some of the classes that are loaded normally during the dumping
34 // process. For example, LambdaFormInvokers creates new versions of the four
35 // java.lang.invoke.xxx$Holder classes that have additional methods.
36 //
37 // RegeneratedClasses records the relocation between the "original" and
38 // "regenerated" versions of these classes. When writing the CDS archive, all
39 // references to the "original" versions are redirected to the "regenerated"
40 // versions.
41 class RegeneratedClasses : public AllStatic {
42 public:
43 static void add_class(InstanceKlass* orig_klass, InstanceKlass* regen_klass);
44 static void cleanup();
45 static bool has_been_regenerated(address orig_obj);
46 static void record_regenerated_objects();
47 };
48
49 #endif // SHARE_CDS_REGENERATEDCLASSES_HPP
|
26 #define SHARE_CDS_REGENERATEDCLASSES_HPP
27
28 #include "memory/allStatic.hpp"
29 #include "utilities/globalDefinitions.hpp"
30
31 class InstanceKlass;
32
33 // CDS regenerates some of the classes that are loaded normally during the dumping
34 // process. For example, LambdaFormInvokers creates new versions of the four
35 // java.lang.invoke.xxx$Holder classes that have additional methods.
36 //
37 // RegeneratedClasses records the relocation between the "original" and
38 // "regenerated" versions of these classes. When writing the CDS archive, all
39 // references to the "original" versions are redirected to the "regenerated"
40 // versions.
41 class RegeneratedClasses : public AllStatic {
42 public:
43 static void add_class(InstanceKlass* orig_klass, InstanceKlass* regen_klass);
44 static void cleanup();
45 static bool has_been_regenerated(address orig_obj);
46 static address get_regenerated_object(address orig_obj);
47 static void record_regenerated_objects();
48 };
49
50 #endif // SHARE_CDS_REGENERATEDCLASSES_HPP
|