Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qv4calldata_p.h
Go to the documentation of this file.
1
// Copyright (C) 2019 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
// Qt-Security score:significant
4
5
#
ifndef
QV4CALLDATA_P_H
6
#
define
QV4CALLDATA_P_H
7
8
//
9
// W A R N I N G
10
// -------------
11
//
12
// This file is not part of the Qt API. It exists purely as an
13
// implementation detail. This header file may change from version to
14
// version without notice, or even be removed.
15
//
16
// We mean it.
17
//
18
19
#
include
<
private
/
qv4staticvalue_p
.
h
>
20
21
QT_BEGIN_NAMESPACE
22
23
namespace
QV4
{
24
25
struct
CallData
26
{
27
enum
Offsets
{
28
Function
= 0,
29
Context
= 1,
30
Accumulator
= 2,
31
This
= 3,
32
NewTarget
= 4,
33
Argc
= 5,
34
35
LastOffset
=
Argc
,
36
OffsetCount
=
LastOffset
+ 1
37
};
38
39
StaticValue
function
;
40
StaticValue
context
;
41
StaticValue
accumulator
;
42
StaticValue
thisObject
;
43
StaticValue
newTarget
;
44
StaticValue
_argc
;
45
46
int
argc
()
const
{
47
Q_ASSERT(_argc.isInteger());
48
return
_argc.int_32();
49
}
50
51
void
setArgc
(
int
argc) {
52
Q_ASSERT(argc >= 0);
53
_argc.setInt_32(argc);
54
}
55
56
inline
ReturnedValue
argument
(
int
i)
const
{
57
return
i < argc() ? args[i].asReturnedValue()
58
: StaticValue::undefinedValue().asReturnedValue();
59
}
60
61
StaticValue
args
[1];
62
63
static
constexpr
int
HeaderSize
()
64
{
65
return
offsetof(CallData, args) /
sizeof
(QV4::StaticValue);
66
}
67
68
template
<
typename
Value>
69
Value *
argValues
();
70
71
template
<
typename
Value>
72
const
Value *
argValues
()
const
;
73
};
74
75
Q_STATIC_ASSERT
(
std
::
is_standard_layout
<
CallData
>::
value
);
76
Q_STATIC_ASSERT
(
offsetof
(
CallData
,
function
) ==
CallData
::
Function
*
sizeof
(
StaticValue
));
77
Q_STATIC_ASSERT
(
offsetof
(
CallData
,
context
) ==
CallData
::
Context
*
sizeof
(
StaticValue
));
78
Q_STATIC_ASSERT
(
offsetof
(
CallData
,
accumulator
) ==
CallData
::
Accumulator
*
sizeof
(
StaticValue
));
79
Q_STATIC_ASSERT
(
offsetof
(
CallData
,
thisObject
) ==
CallData
::
This
*
sizeof
(
StaticValue
));
80
Q_STATIC_ASSERT
(
offsetof
(
CallData
,
newTarget
) ==
CallData
::
NewTarget
*
sizeof
(
StaticValue
));
81
Q_STATIC_ASSERT
(
offsetof
(
CallData
,
_argc
) ==
CallData
::
Argc
*
sizeof
(
StaticValue
));
82
Q_STATIC_ASSERT
(
offsetof
(
CallData
,
args
) == 6 *
sizeof
(
StaticValue
));
83
84
}
// namespace QV4
85
86
QT_END_NAMESPACE
87
88
#
endif
// QV4CALLDATA_P_H
QV4
Definition
qjsvalue.h:24
QV4::Q_STATIC_ASSERT
Q_STATIC_ASSERT(sizeof(CppStackFrame)==sizeof(JSTypesStackFrame))
QV4::CallData
Definition
qv4calldata_p.h:26
QV4::CallData::newTarget
StaticValue newTarget
Definition
qv4calldata_p.h:43
QV4::CallData::args
StaticValue args[1]
Definition
qv4calldata_p.h:61
QV4::CallData::accumulator
StaticValue accumulator
Definition
qv4calldata_p.h:41
QV4::CallData::setArgc
void setArgc(int argc)
Definition
qv4calldata_p.h:51
QV4::CallData::context
StaticValue context
Definition
qv4calldata_p.h:40
QV4::CallData::argValues
const Value * argValues() const
QV4::CallData::argc
int argc() const
Definition
qv4calldata_p.h:46
QV4::CallData::function
StaticValue function
Definition
qv4calldata_p.h:39
QV4::CallData::argument
ReturnedValue argument(int i) const
Definition
qv4calldata_p.h:56
QV4::CallData::thisObject
StaticValue thisObject
Definition
qv4calldata_p.h:42
QV4::CallData::_argc
StaticValue _argc
Definition
qv4calldata_p.h:44
QV4::CallData::Offsets
Offsets
Definition
qv4calldata_p.h:27
QV4::CallData::LastOffset
@ LastOffset
Definition
qv4calldata_p.h:35
QV4::CallData::Function
@ Function
Definition
qv4calldata_p.h:28
QV4::CallData::Argc
@ Argc
Definition
qv4calldata_p.h:33
QV4::CallData::Context
@ Context
Definition
qv4calldata_p.h:29
QV4::CallData::NewTarget
@ NewTarget
Definition
qv4calldata_p.h:32
QV4::CallData::Accumulator
@ Accumulator
Definition
qv4calldata_p.h:30
QV4::CallData::OffsetCount
@ OffsetCount
Definition
qv4calldata_p.h:36
QV4::CallData::This
@ This
Definition
qv4calldata_p.h:31
QV4::CallData::HeaderSize
static constexpr int HeaderSize()
Definition
qv4calldata_p.h:63
QV4::CallData::argValues
Value * argValues()
qtdeclarative
src
qml
common
qv4calldata_p.h
Generated on
for Qt by
1.16.1