Qt
6.x
The Qt SDK
Loading...
Searching...
No Matches
qv4writebarrier_p.h
Go to the documentation of this file.
1
// Copyright (C) 2016 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
#ifndef QV4WRITEBARRIER_P_H
4
#define QV4WRITEBARRIER_P_H
5
6
//
7
// W A R N I N G
8
// -------------
9
//
10
// This file is not part of the Qt API. It exists purely as an
11
// implementation detail. This header file may change from version to
12
// version without notice, or even be removed.
13
//
14
// We mean it.
15
//
16
17
#include <private/qv4global_p.h>
18
19
QT_BEGIN_NAMESPACE
20
21
#define WRITEBARRIER_none 1
22
23
#define WRITEBARRIER(x) (1/WRITEBARRIER_##x == 1)
24
25
namespace
QV4
{
26
struct
EngineBase;
27
28
namespace
WriteBarrier {
29
30
enum
Type
{
31
NoBarrier
,
32
Barrier
33
};
34
35
enum
NewValueType
{
36
Primitive
,
37
Object
,
38
Unknown
39
};
40
41
// ### this needs to be filled with a real memory fence once marking is concurrent
42
Q_ALWAYS_INLINE
void
fence
() {}
43
44
#if WRITEBARRIER(none)
45
46
template
<NewValueType type>
47
static
constexpr
inline
bool
isRequired
() {
48
return
false
;
49
}
50
51
inline
void
write
(
EngineBase
*
engine
,
Heap::Base
*
base
,
ReturnedValue
*slot,
ReturnedValue
value
)
52
{
53
Q_UNUSED
(
engine
);
54
Q_UNUSED
(
base
);
55
*slot =
value
;
56
}
57
58
inline
void
write
(
EngineBase
*
engine
,
Heap::Base
*
base
,
Heap::Base
**slot,
Heap::Base
*
value
)
59
{
60
Q_UNUSED
(
engine
);
61
Q_UNUSED
(
base
);
62
*slot =
value
;
63
}
64
65
#endif
66
67
}
68
69
}
70
71
QT_END_NAMESPACE
72
73
#endif
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qstandardpaths_haiku.cpp:21
QT_END_NAMESPACE
Definition
qsharedpointer.cpp:1545
QV4::WriteBarrier::fence
Q_ALWAYS_INLINE void fence()
Definition
qv4writebarrier_p.h:42
QV4::WriteBarrier::Barrier
@ Barrier
Definition
qv4writebarrier_p.h:32
QV4::WriteBarrier::NoBarrier
@ NoBarrier
Definition
qv4writebarrier_p.h:31
QV4::WriteBarrier::write
void write(EngineBase *engine, Heap::Base *base, ReturnedValue *slot, ReturnedValue value)
Definition
qv4writebarrier_p.h:51
QV4::WriteBarrier::isRequired
static constexpr bool isRequired()
Definition
qv4writebarrier_p.h:47
QV4::WriteBarrier::NewValueType
NewValueType
Definition
qv4writebarrier_p.h:35
QV4::WriteBarrier::Primitive
@ Primitive
Definition
qv4writebarrier_p.h:36
QV4::WriteBarrier::Unknown
@ Unknown
Definition
qv4writebarrier_p.h:38
QV4::WriteBarrier::Object
@ Object
Definition
qv4writebarrier_p.h:37
QV4
\qmltype Particle \inqmlmodule QtQuick.Particles
Definition
qquickv4particledata.cpp:234
QV4::ReturnedValue
quint64 ReturnedValue
Definition
qv4staticvalue_p.h:38
Q_ALWAYS_INLINE
#define Q_ALWAYS_INLINE
Definition
qcompilerdetection.h:1307
value
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
Definition
qeglstreamconvenience_p.h:46
Q_UNUSED
#define Q_UNUSED(x)
Definition
qtpreprocessorsupport.h:20
base
QString base
Definition
src_corelib_io_qfileinfo.cpp:49
engine
QJSEngine engine
[0]
Definition
src_script_qjsvalue.cpp:14
QV4::EngineBase
Definition
qv4enginebase_p.h:27
QV4::Heap::Base
Definition
qv4heap_p.h:58
Type
Definition
moc.h:24
qtdeclarative
src
qml
memory
qv4writebarrier_p.h
Generated by
1.9.7