diff --git a/include/Mw/Core.h b/include/Mw/Core.h index 4b733fc..a2b4557 100644 --- a/include/Mw/Core.h +++ b/include/Mw/Core.h @@ -178,9 +178,9 @@ MWDECL void MwDispatchError(int code, const char* message); /*! * %brief Gets the before_step of widget * %param handle Widget - * %return jmp_buf + * %param jmpbuf jmp_buf */ -MWDECL jmp_buf MwGetBeforeStep(MwWidget handle); +MWDECL void MwGetBeforeStep(MwWidget handle, jmp_buf* jmpbuf); #ifdef __cplusplus } diff --git a/src/core.c b/src/core.c index a0ef5de..bffbb7a 100644 --- a/src/core.c +++ b/src/core.c @@ -275,6 +275,6 @@ void MwDispatchError(int code, const char* message) { } } -jmp_buf MwGetBeforeStep(MwWidget handle) { - return handle->before_step; +void MwGetBeforeStep(MwWidget handle, jmp_buf* jmpbuf) { + memcpy(jmpbuf, &handle->before_step, sizeof(*jmpbuf)); }