Skip to content

Commit a2c05d3

Browse files
committed
7.3.3
bug https://sourceforge.net/p/qpc/bugs/349/ QS adaptation for MPU isolation
1 parent ac99a27 commit a2c05d3

File tree

15 files changed

+1245
-1070
lines changed

15 files changed

+1245
-1070
lines changed

examples

Submodule examples updated 160 files

include/qp.hpp

Lines changed: 9 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -99,11 +99,6 @@
9999

100100
//! @endcond
101101
//============================================================================
102-
#ifdef QEVT_DYN_CTOR
103-
#include <new> // for placement new
104-
#include <cstdarg> // for va_list
105-
#endif // QEVT_DYN_CTOR
106-
107102
//$declare${glob-types} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
108103

109104
//${glob-types::int_t} .......................................................
@@ -155,19 +150,16 @@ class QEvt {
155150
#endif // def QEVT_DYN_CTOR
156151

157152
public:
158-
QEvt() = delete;
153+
154+
#ifdef QEVT_DYN_CTOR
155+
QEvt * ctor(DynEvt const dummy) noexcept;
156+
#endif // def QEVT_DYN_CTOR
159157
explicit constexpr QEvt(QSignal const s) noexcept
160158
: sig(s),
161159
refCtr_(0U),
162160
evtTag_(MARKER)
163161
{}
164-
165-
#ifdef QEVT_DYN_CTOR
166-
explicit QEvt(DynEvt dummy) noexcept {
167-
static_cast<void>(dummy); // unused parameter
168-
// dynamic event already initialized in QP::QF::newX_()
169-
}
170-
#endif // def QEVT_DYN_CTOR
162+
QEvt() = delete;
171163
static bool verify_(QEvt const * const e) noexcept {
172164
return (e != nullptr)
173165
&& ((e->evtTag_ & 0xF0U) == MARKER);
@@ -1188,9 +1180,8 @@ void QF_onContextSw(
11881180

11891181
//${QF-macros::Q_NEW} ........................................................
11901182
#ifdef QEVT_DYN_CTOR
1191-
#define Q_NEW(evtT_, sig_, ...) (static_cast<evtT_ *>( \
1192-
new(QP::QF::newX_(sizeof(evtT_), QP::QF::NO_MARGIN, (sig_))) \
1193-
evtT_(__VA_ARGS__)))
1183+
#define Q_NEW(evtT_, sig_, ...) ( static_cast<evtT_ *>( \
1184+
QP::QF::newX_(sizeof(evtT_), QP::QF::NO_MARGIN, (sig_)))->ctor(__VA_ARGS__))
11941185
#endif // def QEVT_DYN_CTOR
11951186

11961187
//${QF-macros::Q_NEW_X} ......................................................
@@ -1201,9 +1192,8 @@ void QF_onContextSw(
12011192

12021193
//${QF-macros::Q_NEW_X} ......................................................
12031194
#ifdef QEVT_DYN_CTOR
1204-
#define Q_NEW_X(evtT_, margin_, sig_, ...) (static_cast<evtT_ *>( \
1205-
new(QP::QF::newX_(sizeof(evtT_), (margin_), (sig_))) \
1206-
evtT_(__VA_ARGS__)))
1195+
#define Q_NEW_X(evtT_, margin_, sig_, ...) ( static_cast<evtT_ *>( \
1196+
QP::QF::newX_(sizeof(evtT_), (margin_), (sig_)))->ctor(__VA_ARGS__))
12071197
#endif // def QEVT_DYN_CTOR
12081198

12091199
//${QF-macros::Q_NEW_REF} ....................................................

0 commit comments

Comments
 (0)