/* Damn. Got an exception. Extract it and revive it */
xbt_ex_t e;
memcpy(&e,received.payl,received.payl_size);
- VERB2("Raise a remote exception comming from %s %s",e.host,
- (__xbt_ex_ctx()->ctx_caught?"caught":"not caught"));
free(received.payl);
+ VERB3("Raise a remote exception cat:%d comming from %s %s",
+ e.category, e.host,
+ (__xbt_ex_ctx()->ctx_caught?"caught":"not caught"));
__xbt_ex_ctx()->ctx_ex.msg = e.msg;
__xbt_ex_ctx()->ctx_ex.category = e.category;
__xbt_ex_ctx()->ctx_ex.value = e.value;
__xbt_ex_ctx()->ctx_ex.line = e.line;
__xbt_ex_ctx()->ctx_ex.func = e.func;
__xbt_ex_ctx()->ctx_ex.used = e.used;
- // memcpy((void*)&(__xbt_ex_ctx()->ctx_ex),&e,sizeof(xbt_ex_t));
+ __xbt_ex_ctx()->ctx_ex.bt_strings = e.bt_strings;
DO_THROW(__xbt_ex_ctx()->ctx_ex);
}
if (e.remote) {
free(e.file);
free(e.func);
- if (e.bt_strings) /* FIXME: should never be NULL... */
- for (i=0; i<e.used; i++)
- free(e.bt_strings[i]);
+ for (i=0; i<e.used; i++)
+ free(e.bt_strings[i]);
free(e.bt_strings);
e.bt_strings=NULL;
free(e.host);