Commit 18b44702 authored by jfb's avatar jfb Committed by Commit bot

wasm: implemente WasmFrame::cast, fix inheritance

wasm_to_js and js_to_wasm both derive from wasm, which was confusing because is_wasm wasn't true for them and that made WasmFrame::cast awkward. Make them derive from StubFrame instead.

R=bradnelson@chromium.org, titzer@chromium.org

Review URL: https://codereview.chromium.org/1839843002

Cr-Commit-Position: refs/heads/master@{#35115}
parent 4ee76daf
......@@ -247,10 +247,10 @@ inline WasmFrame::WasmFrame(StackFrameIteratorBase* iterator)
: StandardFrame(iterator) {}
inline WasmToJsFrame::WasmToJsFrame(StackFrameIteratorBase* iterator)
: WasmFrame(iterator) {}
: StubFrame(iterator) {}
inline JsToWasmFrame::JsToWasmFrame(StackFrameIteratorBase* iterator)
: WasmFrame(iterator) {}
: StubFrame(iterator) {}
inline InternalFrame::InternalFrame(StackFrameIteratorBase* iterator)
: StandardFrame(iterator) {
......
......@@ -961,6 +961,11 @@ class WasmFrame : public StandardFrame {
// Determine the code for the frame.
Code* unchecked_code() const override;
static WasmFrame* cast(StackFrame* frame) {
DCHECK(frame->is_wasm());
return static_cast<WasmFrame*>(frame);
}
protected:
inline explicit WasmFrame(StackFrameIteratorBase* iterator);
......@@ -970,7 +975,7 @@ class WasmFrame : public StandardFrame {
friend class StackFrameIteratorBase;
};
class WasmToJsFrame : public WasmFrame {
class WasmToJsFrame : public StubFrame {
public:
Type type() const override { return WASM_TO_JS; }
......@@ -981,7 +986,7 @@ class WasmToJsFrame : public WasmFrame {
friend class StackFrameIteratorBase;
};
class JsToWasmFrame : public WasmFrame {
class JsToWasmFrame : public StubFrame {
public:
Type type() const override { return JS_TO_WASM; }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment