#endif
break;
}
+ if(subs_handle)
+ {
+ // call ORTE function
+ b = ORTESubscriptionDestroy((ORTESubscription *) subs_handle);
+ if (b == ORTE_BAD_HANDLE)
+ {
+ printf(":!c: subscription destroy failed! [bad sub handle] \n");
+ break;
+ }
+ #ifdef TEST_STAGE
+ printf(":c: subscription destroy succesfuly.. \n");
+ #endif
+ }
// get value
h = (*env)->GetLongField(env, obj, fid);
if(h)
#ifdef TEST_STAGE
printf(":c: deleting ctx->obj \n");
#endif
- (*env)->DeleteLocalRef(env, ctx->obj);
+ (*env)->DeleteGlobalRef(env, ctx->obj);
}
if(ctx->rinfo)
{
#ifdef TEST_STAGE
printf(":c: deleting ctx->rinfo\n");
#endif
- (*env)->DeleteLocalRef(env, ctx->rinfo);
+ (*env)->DeleteGlobalRef(env, ctx->rinfo);
}
- //
- free((void*)h);
- }
- //
- if(subs_handle)
- {
- // call ORTE function
- b = ORTESubscriptionDestroy((ORTESubscription *) subs_handle);
- if (b == ORTE_BAD_HANDLE)
+ if(ctx->msg)
{
- printf(":!c: subscription destroy failed! [bad sub handle] \n");
- break;
+ #ifdef TEST_STAGE
+ printf(":c: deleting ctx->msg\n");
+ #endif
+ (*env)->DeleteGlobalRef(env, ctx->msg);
}
- #ifdef TEST_STAGE
- printf(":c: subscription destroy succesfuly.. \n");
- #endif
+ //
+ free((void*)h);
}
// set flag
flag_ok = 1;