354 // the closure is applied to: 355 // "SO_None" does none; 356 enum ScanningOption { 357 SO_None = 0x0, 358 SO_AllCodeCache = 0x8, 359 SO_ScavengeCodeCache = 0x10 360 }; 361 362 protected: 363 void process_roots(StrongRootsScope* scope, 364 ScanningOption so, 365 OopClosure* strong_roots, 366 CLDClosure* strong_cld_closure, 367 CLDClosure* weak_cld_closure, 368 CodeBlobToOopClosure* code_roots); 369 370 virtual void gc_prologue(bool full); 371 virtual void gc_epilogue(bool full); 372 373 public: 374 void young_process_roots(StrongRootsScope* scope, 375 OopsInGenClosure* root_closure, 376 OopsInGenClosure* old_gen_closure, 377 CLDClosure* cld_closure); 378 379 void full_process_roots(StrongRootsScope* scope, 380 bool is_adjust_phase, 381 ScanningOption so, 382 bool only_strong_roots, 383 OopClosure* root_closure, 384 CLDClosure* cld_closure); 385 386 // Apply "root_closure" to all the weak roots of the system. 387 // These include JNI weak roots, string table, 388 // and referents of reachable weak refs. 389 void gen_process_weak_roots(OopClosure* root_closure); 390 391 // Set the saved marks of generations, if that makes sense. 392 // In particular, if any generation might iterate over the oops 393 // in other generations, it should call this method. 394 void save_marks(); 395 396 // Returns "true" iff no allocations have occurred since the last 397 // call to "save_marks". 398 bool no_allocs_since_save_marks(); | 354 // the closure is applied to: 355 // "SO_None" does none; 356 enum ScanningOption { 357 SO_None = 0x0, 358 SO_AllCodeCache = 0x8, 359 SO_ScavengeCodeCache = 0x10 360 }; 361 362 protected: 363 void process_roots(StrongRootsScope* scope, 364 ScanningOption so, 365 OopClosure* strong_roots, 366 CLDClosure* strong_cld_closure, 367 CLDClosure* weak_cld_closure, 368 CodeBlobToOopClosure* code_roots); 369 370 virtual void gc_prologue(bool full); 371 virtual void gc_epilogue(bool full); 372 373 public: 374 void full_process_roots(StrongRootsScope* scope, 375 bool is_adjust_phase, 376 ScanningOption so, 377 bool only_strong_roots, 378 OopClosure* root_closure, 379 CLDClosure* cld_closure); 380 381 // Apply "root_closure" to all the weak roots of the system. 382 // These include JNI weak roots, string table, 383 // and referents of reachable weak refs. 384 void gen_process_weak_roots(OopClosure* root_closure); 385 386 // Set the saved marks of generations, if that makes sense. 387 // In particular, if any generation might iterate over the oops 388 // in other generations, it should call this method. 389 void save_marks(); 390 391 // Returns "true" iff no allocations have occurred since the last 392 // call to "save_marks". 393 bool no_allocs_since_save_marks(); |