Skip to content

Commit

Permalink
7.3.3
Browse files Browse the repository at this point in the history
bug https://sourceforge.net/p/qpc/bugs/349/
QS adaptation for MPU isolation
  • Loading branch information
quantum-leaps committed Feb 22, 2024
1 parent ac99a27 commit a2c05d3
Show file tree
Hide file tree
Showing 15 changed files with 1,245 additions and 1,070 deletions.
2 changes: 1 addition & 1 deletion examples
Submodule examples updated 160 files
28 changes: 9 additions & 19 deletions include/qp.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -99,11 +99,6 @@

//! @endcond
//============================================================================
#ifdef QEVT_DYN_CTOR
#include <new> // for placement new
#include <cstdarg> // for va_list
#endif // QEVT_DYN_CTOR

//$declare${glob-types} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv

//${glob-types::int_t} .......................................................
Expand Down Expand Up @@ -155,19 +150,16 @@ class QEvt {
#endif // def QEVT_DYN_CTOR

public:
QEvt() = delete;

#ifdef QEVT_DYN_CTOR
QEvt * ctor(DynEvt const dummy) noexcept;
#endif // def QEVT_DYN_CTOR
explicit constexpr QEvt(QSignal const s) noexcept
: sig(s),
refCtr_(0U),
evtTag_(MARKER)
{}

#ifdef QEVT_DYN_CTOR
explicit QEvt(DynEvt dummy) noexcept {
static_cast<void>(dummy); // unused parameter
// dynamic event already initialized in QP::QF::newX_()
}
#endif // def QEVT_DYN_CTOR
QEvt() = delete;
static bool verify_(QEvt const * const e) noexcept {
return (e != nullptr)
&& ((e->evtTag_ & 0xF0U) == MARKER);
Expand Down Expand Up @@ -1188,9 +1180,8 @@ void QF_onContextSw(

//${QF-macros::Q_NEW} ........................................................
#ifdef QEVT_DYN_CTOR
#define Q_NEW(evtT_, sig_, ...) (static_cast<evtT_ *>( \
new(QP::QF::newX_(sizeof(evtT_), QP::QF::NO_MARGIN, (sig_))) \
evtT_(__VA_ARGS__)))
#define Q_NEW(evtT_, sig_, ...) ( static_cast<evtT_ *>( \
QP::QF::newX_(sizeof(evtT_), QP::QF::NO_MARGIN, (sig_)))->ctor(__VA_ARGS__))
#endif // def QEVT_DYN_CTOR

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

//${QF-macros::Q_NEW_X} ......................................................
#ifdef QEVT_DYN_CTOR
#define Q_NEW_X(evtT_, margin_, sig_, ...) (static_cast<evtT_ *>( \
new(QP::QF::newX_(sizeof(evtT_), (margin_), (sig_))) \
evtT_(__VA_ARGS__)))
#define Q_NEW_X(evtT_, margin_, sig_, ...) ( static_cast<evtT_ *>( \
QP::QF::newX_(sizeof(evtT_), (margin_), (sig_)))->ctor(__VA_ARGS__))
#endif // def QEVT_DYN_CTOR

//${QF-macros::Q_NEW_REF} ....................................................
Expand Down
Loading

0 comments on commit a2c05d3

Please sign in to comment.