Mercurial > hg > truffle
comparison src/share/vm/code/dependencies.hpp @ 1123:167c2986d91b
6843629: Make current hotspot build part of jdk5 control build
Summary: Source changes for older compilers plus makefile changes.
Reviewed-by: xlu
author | phh |
---|---|
date | Wed, 16 Dec 2009 12:54:49 -0500 |
parents | a61af66fc99e |
children | c18cbe5936b8 |
comparison
equal
deleted
inserted
replaced
1122:dcb15a6f342d | 1123:167c2986d91b |
---|---|
468 // The change is structured as a single new type with any number of supers | 468 // The change is structured as a single new type with any number of supers |
469 // and implemented interface types. Other than the new type, any of the | 469 // and implemented interface types. Other than the new type, any of the |
470 // super types can be context types for a relevant dependency, which the | 470 // super types can be context types for a relevant dependency, which the |
471 // new type could invalidate. | 471 // new type could invalidate. |
472 class DepChange : public StackObj { | 472 class DepChange : public StackObj { |
473 private: | 473 public: |
474 enum ChangeType { | 474 enum ChangeType { |
475 NO_CHANGE = 0, // an uninvolved klass | 475 NO_CHANGE = 0, // an uninvolved klass |
476 Change_new_type, // a newly loaded type | 476 Change_new_type, // a newly loaded type |
477 Change_new_sub, // a super with a new subtype | 477 Change_new_sub, // a super with a new subtype |
478 Change_new_impl, // an interface with a new implementation | 478 Change_new_impl, // an interface with a new implementation |
479 CHANGE_LIMIT, | 479 CHANGE_LIMIT, |
480 Start_Klass = CHANGE_LIMIT // internal indicator for ContextStream | 480 Start_Klass = CHANGE_LIMIT // internal indicator for ContextStream |
481 }; | 481 }; |
482 | 482 |
483 private: | |
483 // each change set is rooted in exactly one new type (at present): | 484 // each change set is rooted in exactly one new type (at present): |
484 KlassHandle _new_type; | 485 KlassHandle _new_type; |
485 | 486 |
486 void initialize(); | 487 void initialize(); |
487 | 488 |
508 // ... | 509 // ... |
509 // } | 510 // } |
510 // } | 511 // } |
511 class ContextStream : public StackObj { | 512 class ContextStream : public StackObj { |
512 private: | 513 private: |
513 DepChange& _changes; | 514 DepChange& _changes; |
514 friend class DepChange; | 515 friend class DepChange; |
515 | 516 |
516 // iteration variables: | 517 // iteration variables: |
517 ChangeType _change_type; | 518 ChangeType _change_type; |
518 klassOop _klass; | 519 klassOop _klass; |
519 objArrayOop _ti_base; // i.e., transitive_interfaces | 520 objArrayOop _ti_base; // i.e., transitive_interfaces |
520 int _ti_index; | 521 int _ti_index; |
521 int _ti_limit; | 522 int _ti_limit; |
522 | 523 |
523 // start at the beginning: | 524 // start at the beginning: |
524 void start() { | 525 void start() { |
525 klassOop new_type = _changes.new_type(); | 526 klassOop new_type = _changes.new_type(); |
526 _change_type = (new_type == NULL ? NO_CHANGE: Start_Klass); | 527 _change_type = (new_type == NULL ? NO_CHANGE: Start_Klass); |
528 _ti_base = NULL; | 529 _ti_base = NULL; |
529 _ti_index = 0; | 530 _ti_index = 0; |
530 _ti_limit = 0; | 531 _ti_limit = 0; |
531 } | 532 } |
532 | 533 |
534 public: | |
533 ContextStream(DepChange& changes) | 535 ContextStream(DepChange& changes) |
534 : _changes(changes) | 536 : _changes(changes) |
535 { start(); } | 537 { start(); } |
536 | 538 |
537 public: | |
538 ContextStream(DepChange& changes, No_Safepoint_Verifier& nsv) | 539 ContextStream(DepChange& changes, No_Safepoint_Verifier& nsv) |
539 : _changes(changes) | 540 : _changes(changes) |
540 // the nsv argument makes it safe to hold oops like _klass | 541 // the nsv argument makes it safe to hold oops like _klass |
541 { start(); } | 542 { start(); } |
542 | 543 |
543 bool next(); | 544 bool next(); |
544 | 545 |
546 ChangeType change_type() { return _change_type; } | |
545 klassOop klass() { return _klass; } | 547 klassOop klass() { return _klass; } |
546 }; | 548 }; |
547 friend class DepChange::ContextStream; | 549 friend class DepChange::ContextStream; |
548 | 550 |
549 void print(); | 551 void print(); |