This repository was archived by the owner on Mar 29, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 14
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
1f7a3c8
to
bf0d47c
Compare
Ther rationale for that as it may hold older context which zval was already destroyed and we do not want to cover this case at this time as it adds more ambiguity then practical benefit
This fixes segfaults when isolate entered multiple time or when multiple isolates entered and unclean shutdown performed (when die/exit called or uncaught exception occurs).
bf0d47c
to
e777563
Compare
b6bc66d
to
b4de00b
Compare
b4de00b
to
dd82d16
Compare
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds low-level optimizations, simplify some internal methods and fix few bugs. For more details see change list below.
*
ReplaceV8\Isolate::GetCurrentContext
withV8\Isolate::GetEnteredContext()
;*
RemoveV8\ObjectValue::CreationContext()
, useV8\ObjectValue::GetContext()
;V8\PropertyCallbackInfo::ShouldThrowOnError()
method;V8\FunctionCallbackInfo::NewTarget()
method;V8\ReturnValue
now explicitly holds isolate and context which could be accessed outside of calling context, thoughReturnValue::{Get,Set}
could be accessed only within calling context as before;V8\FunctionCallbackInfo
andV8\PropertyCallbackInfo
, now they are fully build, properly stores owning isolate and context and could be safely used outside calling scope;V8\ScriptCompiler::CompileFunctionInContext()
invoked with arguments or arguments and context extensions;die()
,exit()
, uncaught exception) from isolate which entered multiple time or from multiple nested isolates (quite rare use case).Notes:
V8\Exceptions\ValueException
to stubs. It support was in extension for ages but for some reason it was missed from stubs.$global_template
and$global_object
private props fromV8\Context
were never exposed to end-user.*
- BC-breaking or potentially BC-breaking changes