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
4
#
ifndef
QV4CALLDATA_P_H
5
#
define
QV4CALLDATA_P_H
6
7
//
8
// W A R N I N G
9
// -------------
10
//
11
// This file is not part of the Qt API. It exists purely as an
12
// implementation detail. This header file may change from version to
13
// version without notice, or even be removed.
14
//
15
// We mean it.
16
//
17
18
#
include
<
private
/
qv4staticvalue_p
.
h
>
19
20
QT_BEGIN_NAMESPACE
21
22
namespace
QV4
{
23
24
struct
CallData
25
{
26
enum
Offsets
{
27
Function
= 0,
28
Context
= 1,
29
Accumulator
= 2,
30
This
= 3,
31
NewTarget
= 4,
32
Argc
= 5,
33
34
LastOffset
=
Argc
,
35
OffsetCount
=
LastOffset
+ 1
36
};
37
38
StaticValue
function
;
39
StaticValue
context
;
40
StaticValue
accumulator
;
41
StaticValue
thisObject
;
42
StaticValue
newTarget
;
43
StaticValue
_argc
;
44
45
int
argc
()
const
{
46
Q_ASSERT(_argc.isInteger());
47
return
_argc.int_32();
48
}
49
50
void
setArgc
(
int
argc) {
51
Q_ASSERT(argc >= 0);
52
_argc.setInt_32(argc);
53
}
54
55
inline
ReturnedValue
argument
(
int
i)
const
{
56
return
i < argc() ? args[i].asReturnedValue()
57
: StaticValue::undefinedValue().asReturnedValue();
58
}
59
60
StaticValue
args
[1];
61
62
static
constexpr
int
HeaderSize
()
63
{
64
return
offsetof(CallData, args) /
sizeof
(QV4::StaticValue);
65
}
66
67
template
<
typename
Value>
68
Value *
argValues
();
69
70
template
<
typename
Value>
71
const
Value *
argValues
()
const
;
72
};
73
74
Q_STATIC_ASSERT
(
std
::
is_standard_layout
<
CallData
>::
value
);
75
Q_STATIC_ASSERT
(
offsetof
(
CallData
,
function
) ==
CallData
::
Function
*
sizeof
(
StaticValue
));
76
Q_STATIC_ASSERT
(
offsetof
(
CallData
,
context
) ==
CallData
::
Context
*
sizeof
(
StaticValue
));
77
Q_STATIC_ASSERT
(
offsetof
(
CallData
,
accumulator
) ==
CallData
::
Accumulator
*
sizeof
(
StaticValue
));
78
Q_STATIC_ASSERT
(
offsetof
(
CallData
,
thisObject
) ==
CallData
::
This
*
sizeof
(
StaticValue
));
79
Q_STATIC_ASSERT
(
offsetof
(
CallData
,
newTarget
) ==
CallData
::
NewTarget
*
sizeof
(
StaticValue
));
80
Q_STATIC_ASSERT
(
offsetof
(
CallData
,
_argc
) ==
CallData
::
Argc
*
sizeof
(
StaticValue
));
81
Q_STATIC_ASSERT
(
offsetof
(
CallData
,
args
) == 6 *
sizeof
(
StaticValue
));
82
83
}
// namespace QV4
84
85
QT_END_NAMESPACE
86
87
#
endif
// QV4CALLDATA_P_H
QV4
Definition
qjsvalue.h:23
QV4::Q_STATIC_ASSERT
Q_STATIC_ASSERT(std::is_trivial_v< Value >)
QV4::CallData
Definition
qv4calldata_p.h:25
QV4::CallData::newTarget
StaticValue newTarget
Definition
qv4calldata_p.h:42
QV4::CallData::args
StaticValue args[1]
Definition
qv4calldata_p.h:60
QV4::CallData::accumulator
StaticValue accumulator
Definition
qv4calldata_p.h:40
QV4::CallData::setArgc
void setArgc(int argc)
Definition
qv4calldata_p.h:50
QV4::CallData::context
StaticValue context
Definition
qv4calldata_p.h:39
QV4::CallData::argValues
const Value * argValues() const
QV4::CallData::argc
int argc() const
Definition
qv4calldata_p.h:45
QV4::CallData::function
StaticValue function
Definition
qv4calldata_p.h:38
QV4::CallData::argument
ReturnedValue argument(int i) const
Definition
qv4calldata_p.h:55
QV4::CallData::thisObject
StaticValue thisObject
Definition
qv4calldata_p.h:41
QV4::CallData::_argc
StaticValue _argc
Definition
qv4calldata_p.h:43
QV4::CallData::Offsets
Offsets
Definition
qv4calldata_p.h:26
QV4::CallData::LastOffset
@ LastOffset
Definition
qv4calldata_p.h:34
QV4::CallData::Function
@ Function
Definition
qv4calldata_p.h:27
QV4::CallData::Argc
@ Argc
Definition
qv4calldata_p.h:32
QV4::CallData::Context
@ Context
Definition
qv4calldata_p.h:28
QV4::CallData::NewTarget
@ NewTarget
Definition
qv4calldata_p.h:31
QV4::CallData::Accumulator
@ Accumulator
Definition
qv4calldata_p.h:29
QV4::CallData::OffsetCount
@ OffsetCount
Definition
qv4calldata_p.h:35
QV4::CallData::This
@ This
Definition
qv4calldata_p.h:30
QV4::CallData::HeaderSize
static constexpr int HeaderSize()
Definition
qv4calldata_p.h:62
QV4::CallData::argValues
Value * argValues()
qtdeclarative
src
qml
common
qv4calldata_p.h
Generated on Mon Mar 10 2025 01:10:41 for Qt by
1.13.2