OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 608 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
619 if (!result) return false; | 619 if (!result) return false; |
620 } | 620 } |
621 if (constraints->stack_limit() != NULL) { | 621 if (constraints->stack_limit() != NULL) { |
622 uintptr_t limit = reinterpret_cast<uintptr_t>(constraints->stack_limit()); | 622 uintptr_t limit = reinterpret_cast<uintptr_t>(constraints->stack_limit()); |
623 isolate->stack_guard()->SetStackLimit(limit); | 623 isolate->stack_guard()->SetStackLimit(limit); |
624 } | 624 } |
625 return true; | 625 return true; |
626 } | 626 } |
627 | 627 |
628 | 628 |
629 i::Object** V8::GlobalizeReference(i::Object** obj) { | 629 i::Object** V8::GlobalizeReference(i::Isolate* isolate, i::Object** obj) { |
630 i::Isolate* isolate = i::Isolate::Current(); | |
631 if (IsDeadCheck(isolate, "V8::Persistent::New")) return NULL; | 630 if (IsDeadCheck(isolate, "V8::Persistent::New")) return NULL; |
632 LOG_API(isolate, "Persistent::New"); | 631 LOG_API(isolate, "Persistent::New"); |
633 i::Handle<i::Object> result = | 632 i::Handle<i::Object> result = isolate->global_handles()->Create(*obj); |
634 isolate->global_handles()->Create(*obj); | |
635 return result.location(); | 633 return result.location(); |
636 } | 634 } |
637 | 635 |
638 | 636 |
639 void V8::MakeWeak(i::Object** object, void* parameters, | 637 void V8::MakeWeak(i::Isolate* isolate, |
640 WeakReferenceCallback callback) { | 638 i::Object** object, |
641 i::Isolate* isolate = i::Isolate::Current(); | 639 void* parameters, |
| 640 WeakReferenceCallback weak_reference_callback, |
| 641 NearDeathCallback near_death_callback) { |
| 642 ASSERT(isolate == i::Isolate::Current()); |
642 LOG_API(isolate, "MakeWeak"); | 643 LOG_API(isolate, "MakeWeak"); |
643 isolate->global_handles()->MakeWeak(object, parameters, | 644 isolate->global_handles()->MakeWeak(object, |
644 callback); | 645 parameters, |
| 646 weak_reference_callback, |
| 647 near_death_callback); |
645 } | 648 } |
646 | 649 |
647 | 650 |
648 void V8::MakeWeak(i::Isolate* isolate, i::Object** object, | 651 void V8::ClearWeak(i::Isolate* isolate, i::Object** obj) { |
649 void* parameters, WeakReferenceCallback callback) { | |
650 ASSERT(isolate == i::Isolate::Current()); | |
651 LOG_API(isolate, "MakeWeak"); | |
652 isolate->global_handles()->MakeWeak(object, parameters, | |
653 callback); | |
654 } | |
655 | |
656 | |
657 void V8::ClearWeak(i::Object** obj) { | |
658 i::Isolate* isolate = i::Isolate::Current(); | |
659 LOG_API(isolate, "ClearWeak"); | 652 LOG_API(isolate, "ClearWeak"); |
660 isolate->global_handles()->ClearWeakness(obj); | 653 isolate->global_handles()->ClearWeakness(obj); |
661 } | 654 } |
662 | 655 |
663 | 656 |
664 void V8::MarkIndependent(i::Object** object) { | |
665 i::Isolate* isolate = i::Isolate::Current(); | |
666 LOG_API(isolate, "MarkIndependent"); | |
667 isolate->global_handles()->MarkIndependent(object); | |
668 } | |
669 | |
670 | |
671 void V8::MarkPartiallyDependent(i::Object** object) { | |
672 i::Isolate* isolate = i::Isolate::Current(); | |
673 LOG_API(isolate, "MarkPartiallyDependent"); | |
674 isolate->global_handles()->MarkPartiallyDependent(object); | |
675 } | |
676 | |
677 | |
678 bool V8::IsGlobalIndependent(i::Object** obj) { | |
679 i::Isolate* isolate = i::Isolate::Current(); | |
680 LOG_API(isolate, "IsGlobalIndependent"); | |
681 if (!isolate->IsInitialized()) return false; | |
682 return i::GlobalHandles::IsIndependent(obj); | |
683 } | |
684 | |
685 | |
686 bool V8::IsGlobalNearDeath(i::Object** obj) { | |
687 i::Isolate* isolate = i::Isolate::Current(); | |
688 LOG_API(isolate, "IsGlobalNearDeath"); | |
689 if (!isolate->IsInitialized()) return false; | |
690 return i::GlobalHandles::IsNearDeath(obj); | |
691 } | |
692 | |
693 | |
694 bool V8::IsGlobalWeak(i::Object** obj) { | |
695 i::Isolate* isolate = i::Isolate::Current(); | |
696 LOG_API(isolate, "IsGlobalWeak"); | |
697 if (!isolate->IsInitialized()) return false; | |
698 return i::GlobalHandles::IsWeak(obj); | |
699 } | |
700 | |
701 | |
702 bool V8::IsGlobalWeak(i::Isolate* isolate, i::Object** obj) { | |
703 ASSERT(isolate == i::Isolate::Current()); | |
704 LOG_API(isolate, "IsGlobalWeak"); | |
705 if (!isolate->IsInitialized()) return false; | |
706 return i::GlobalHandles::IsWeak(obj); | |
707 } | |
708 | |
709 | |
710 void V8::DisposeGlobal(i::Object** obj) { | |
711 i::Isolate* isolate = i::Isolate::Current(); | |
712 LOG_API(isolate, "DisposeGlobal"); | |
713 if (!isolate->IsInitialized()) return; | |
714 isolate->global_handles()->Destroy(obj); | |
715 } | |
716 | |
717 | |
718 void V8::DisposeGlobal(i::Isolate* isolate, i::Object** obj) { | 657 void V8::DisposeGlobal(i::Isolate* isolate, i::Object** obj) { |
719 ASSERT(isolate == i::Isolate::Current()); | 658 ASSERT(isolate == i::Isolate::Current()); |
720 LOG_API(isolate, "DisposeGlobal"); | 659 LOG_API(isolate, "DisposeGlobal"); |
721 if (!isolate->IsInitialized()) return; | 660 if (!isolate->IsInitialized()) return; |
722 isolate->global_handles()->Destroy(obj); | 661 isolate->global_handles()->Destroy(obj); |
723 } | 662 } |
724 | 663 |
725 // --- H a n d l e s --- | 664 // --- H a n d l e s --- |
726 | 665 |
727 | 666 |
(...skipping 6028 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6756 | 6695 |
6757 v->VisitPointers(blocks_.first(), first_block_limit_); | 6696 v->VisitPointers(blocks_.first(), first_block_limit_); |
6758 | 6697 |
6759 for (int i = 1; i < blocks_.length(); i++) { | 6698 for (int i = 1; i < blocks_.length(); i++) { |
6760 v->VisitPointers(blocks_[i], &blocks_[i][kHandleBlockSize]); | 6699 v->VisitPointers(blocks_[i], &blocks_[i][kHandleBlockSize]); |
6761 } | 6700 } |
6762 } | 6701 } |
6763 | 6702 |
6764 | 6703 |
6765 } } // namespace v8::internal | 6704 } } // namespace v8::internal |
OLD | NEW |