diff options
author | Dave Allison <dallison@google.com> | 2014-04-01 01:07:45 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2014-04-01 01:07:45 +0000 |
commit | 81ed34e686532cebc1e17a273110decf0dd24e81 (patch) | |
tree | 885a781e5f8bd852e2c1615108ae7b17576a6567 /runtime/stack.h | |
parent | cfd5acf281b0c509f86b13d73c6a8dfa3ea9922c (diff) | |
parent | f943914730db8ad2ff03d49a2cacd31885d08fd7 (diff) | |
download | art-81ed34e686532cebc1e17a273110decf0dd24e81.tar.gz art-81ed34e686532cebc1e17a273110decf0dd24e81.tar.bz2 art-81ed34e686532cebc1e17a273110decf0dd24e81.zip |
Merge "Implement implicit stack overflow checks"
Diffstat (limited to 'runtime/stack.h')
-rw-r--r-- | runtime/stack.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/runtime/stack.h b/runtime/stack.h index 4ee5de1d89..ab903d6404 100644 --- a/runtime/stack.h +++ b/runtime/stack.h @@ -100,6 +100,14 @@ enum VRegBaseRegNum : int { kVRegNonSpecialTempBaseReg = -3, }; +// Special object used to mark the gap in the stack placed when a stack +// overflow fault occurs during implicit stack checking. This is not +// a real object - it is used simply as a valid address to which a +// mirror::ArtMethod* can be compared during a stack walk. It is inserted +// into the stack during the stack overflow signal handling to mark the gap +// in which the memory is protected against read and write. +extern void* stack_overflow_gap_marker; + // A reference from the shadow stack to a MirrorType object within the Java heap. template<class MirrorType> class MANAGED StackReference : public mirror::ObjectReference<false, MirrorType> { |