Skip to content
Snippets Groups Projects
Commit efcdda5d authored by Konstantin Osipov's avatar Konstantin Osipov
Browse files

arm: the most specific exception type was ignored by raise

parent 7be74511
No related branches found
No related tags found
No related merge requests found
......@@ -45,6 +45,7 @@ struct XlogError: public Exception
{
XlogError(const char *file, unsigned line,
const char *format, ...);
virtual void raise() { throw this; }
protected:
XlogError(const struct type *type, const char *file, unsigned line,
const char *format, ...);
......@@ -55,6 +56,7 @@ struct XlogGapError: public XlogError
XlogGapError(const char *file, unsigned line,
const struct vclock *from,
const struct vclock *to);
virtual void raise() { throw this; }
};
/* {{{ log dir */
......
......@@ -43,11 +43,7 @@ class Exception: public diag_msg {
public:
void *operator new(size_t size);
void operator delete(void*);
virtual void raise()
{
/* Throw the most specific type of exception */
throw this;
}
virtual void raise() = 0;
const char *
errmsg() const
......@@ -84,10 +80,7 @@ extern const struct type type_SystemError;
class SystemError: public Exception {
public:
virtual void raise()
{
throw this;
}
virtual void raise() { throw this; }
int
errnum() const
......@@ -119,12 +112,14 @@ class OutOfMemory: public SystemError {
OutOfMemory(const char *file, unsigned line,
size_t amount, const char *allocator,
const char *object);
virtual void raise() { throw this; }
};
extern const struct type type_TimedOut;
class TimedOut: public SystemError {
public:
TimedOut(const char *file, unsigned line);
virtual void raise() { throw this; }
};
/** \endcond */
......
......@@ -98,6 +98,7 @@ class FiberCancelException: public Exception {
virtual void log() const {
say_debug("FiberCancelException");
}
virtual void raise() { throw this; }
};
#endif /* defined(__cplusplus) */
......
......@@ -509,6 +509,7 @@ class LuajitError: public Exception {
public:
LuajitError(const char *file, unsigned line,
struct lua_State *L);
virtual void raise() { throw this; }
};
static inline void
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment