Skip to content

Commit

Permalink
Allow Delegate call on nullptr value without exception. Solved l32r e…
Browse files Browse the repository at this point in the history
…rror on ESP32, too.
  • Loading branch information
dok-net committed Mar 8, 2023
1 parent fa23f02 commit eaa3fb5
Showing 1 changed file with 24 additions and 16 deletions.
40 changes: 24 additions & 16 deletions src/circular_queue/Delegate.h
Original file line number Diff line number Diff line change
Expand Up @@ -327,16 +327,17 @@ namespace delegate
{
if (FP == kind)
{
return fn(std::forward<P...>(args...));
if (fn) return fn(std::forward<P...>(args...));
}
else if (FPA == kind)
{
return fnA(obj, std::forward<P...>(args...));
if (fnA) return fnA(obj, std::forward<P...>(args...));
}
else
{
return functional(std::forward<P...>(args...));
if (functional) return functional(std::forward<P...>(args...));
}
return R();
}

protected:
Expand Down Expand Up @@ -541,12 +542,13 @@ namespace delegate
{
if (FP == kind)
{
return fn(std::forward<P...>(args...));
if (fn) return fn(std::forward<P...>(args...));
}
else
{
return fnA(obj, std::forward<P...>(args...));
if (fnA) return fnA(obj, std::forward<P...>(args...));
}
return R();
}

protected:
Expand Down Expand Up @@ -748,12 +750,13 @@ namespace delegate
{
if (FP == kind)
{
return fn(std::forward<P...>(args...));
if (fn) return fn(std::forward<P...>(args...));
}
else
{
return functional(std::forward<P...>(args...));
if (functional) return functional(std::forward<P...>(args...));
}
return R();
}

protected:
Expand Down Expand Up @@ -845,7 +848,8 @@ namespace delegate

inline R IRAM_ATTR operator()(P... args) const __attribute__((always_inline))
{
return fn(std::forward<P...>(args...));
if (fn) return fn(std::forward<P...>(args...));
return R();
}

protected:
Expand Down Expand Up @@ -1127,16 +1131,17 @@ namespace delegate
{
if (FP == kind)
{
return fn();
if (fn) return fn();
}
else if (FPA == kind)
{
return fnA(obj);
if (fnA) return fnA(obj);
}
else
{
return functional();
if (functional) return functional();
}
return R();
}

protected:
Expand Down Expand Up @@ -1340,12 +1345,13 @@ namespace delegate
{
if (FP == kind)
{
return fn();
if (fn) return fn();
}
else
{
return fnA(obj);
if (fnA) return fnA(obj);
}
return R();
}

protected:
Expand Down Expand Up @@ -1547,12 +1553,13 @@ namespace delegate
{
if (FP == kind)
{
return fn();
if (fn) return fn();
}
else
{
return functional();
if (functional) return functional();
}
return R();
}

protected:
Expand Down Expand Up @@ -1644,7 +1651,8 @@ namespace delegate

inline R IRAM_ATTR operator()() const __attribute__((always_inline))
{
return fn();
if (fn) return fn();
return R();
}

protected:
Expand Down

0 comments on commit eaa3fb5

Please sign in to comment.