From 32ea33253afbbdefd2680aa95ab5f57455272ae7 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Fri, 30 Nov 2012 16:58:06 +0100 Subject: Imported WebKit commit 6a4a1d32e1d779548c726c4826cba9d69eb87601 (http://svn.webkit.org/repository/webkit/trunk@136242) Final import for the Qt 5.x series that implements the QtWebKit / QtWebKitWidgets split Extra fixes will be cherry-picked. Change-Id: I844f1ebb99c6d6b75db31d6538c2acd628e79681 Reviewed-by: Simon Hausmann --- Source/JavaScriptCore/bytecode/CodeOrigin.h | 32 +++++++---------------------- 1 file changed, 7 insertions(+), 25 deletions(-) (limited to 'Source/JavaScriptCore/bytecode/CodeOrigin.h') diff --git a/Source/JavaScriptCore/bytecode/CodeOrigin.h b/Source/JavaScriptCore/bytecode/CodeOrigin.h index c9c0f7005..d8fbf7328 100644 --- a/Source/JavaScriptCore/bytecode/CodeOrigin.h +++ b/Source/JavaScriptCore/bytecode/CodeOrigin.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2011 Apple Inc. All rights reserved. + * Copyright (C) 2011, 2012 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -26,6 +26,8 @@ #ifndef CodeOrigin_h #define CodeOrigin_h +#include "CodeBlockHash.h" +#include "CodeSpecializationKind.h" #include "ValueRecovery.h" #include "WriteBarrier.h" #include @@ -98,6 +100,10 @@ struct InlineCallFrame { BitVector capturedVars; // Indexed by the machine call frame's variable numbering. unsigned stackOffset : 31; bool isCall : 1; + + CodeSpecializationKind specializationKind() const { return specializationFromIsCall(isCall); } + + CodeBlockHash hash() const; }; struct CodeOriginAtCallReturnOffset { @@ -105,36 +111,12 @@ struct CodeOriginAtCallReturnOffset { unsigned callReturnOffset; }; -inline unsigned CodeOrigin::inlineDepthForCallFrame(InlineCallFrame* inlineCallFrame) -{ - unsigned result = 1; - for (InlineCallFrame* current = inlineCallFrame; current; current = current->caller.inlineCallFrame) - result++; - return result; -} - -inline unsigned CodeOrigin::inlineDepth() const -{ - return inlineDepthForCallFrame(inlineCallFrame); -} - inline bool CodeOrigin::operator==(const CodeOrigin& other) const { return bytecodeIndex == other.bytecodeIndex && inlineCallFrame == other.inlineCallFrame; } -// Get the inline stack. This is slow, and is intended for debugging only. -inline Vector CodeOrigin::inlineStack() const -{ - Vector result(inlineDepth()); - result.last() = *this; - unsigned index = result.size() - 2; - for (InlineCallFrame* current = inlineCallFrame; current; current = current->caller.inlineCallFrame) - result[index--] = current->caller; - return result; -} - inline unsigned getCallReturnOffsetForCodeOrigin(CodeOriginAtCallReturnOffset* data) { return data->callReturnOffset; -- cgit v1.2.1