< prev index next >

src/jdk.jdwp.agent/share/native/libjdwp/eventHelper.c

Print this page




 834         clazz = *pclazz;
 835         *pclazz = NULL;
 836         saveGlobalRef(env, clazz, pclazz);
 837     }
 838     if ( evinfo->object != NULL ) {
 839         pobject = &(evinfo->object);
 840         object = *pobject;
 841         *pobject = NULL;
 842         saveGlobalRef(env, object, pobject);
 843     }
 844 
 845     switch (evinfo->ei) {
 846         case EI_FIELD_MODIFICATION:
 847             if ( evinfo->u.field_modification.field_clazz != NULL ) {
 848                 pclazz = &(evinfo->u.field_modification.field_clazz);
 849                 clazz = *pclazz;
 850                 *pclazz = NULL;
 851                 saveGlobalRef(env, clazz, pclazz);
 852             }
 853             sig = evinfo->u.field_modification.signature_type;
 854             if ((sig == JDWP_TAG(ARRAY)) || (sig == JDWP_TAG(OBJECT))) {
 855                 if ( evinfo->u.field_modification.new_value.l != NULL ) {
 856                     pobject = &(evinfo->u.field_modification.new_value.l);
 857                     object = *pobject;
 858                     *pobject = NULL;
 859                     saveGlobalRef(env, object, pobject);
 860                 }
 861             }
 862             break;
 863         case EI_FIELD_ACCESS:
 864             if ( evinfo->u.field_access.field_clazz != NULL ) {
 865                 pclazz = &(evinfo->u.field_access.field_clazz);
 866                 clazz = *pclazz;
 867                 *pclazz = NULL;
 868                 saveGlobalRef(env, clazz, pclazz);
 869             }
 870             break;
 871         case EI_EXCEPTION:
 872             if ( evinfo->u.exception.catch_clazz != NULL ) {
 873                 pclazz = &(evinfo->u.exception.catch_clazz);
 874                 clazz = *pclazz;


 887 
 888 static void
 889 tossEventInfoRefs(JNIEnv *env, EventInfo *evinfo)
 890 {
 891     char sig;
 892     if ( evinfo->thread != NULL ) {
 893         tossGlobalRef(env, &(evinfo->thread));
 894     }
 895     if ( evinfo->clazz != NULL ) {
 896         tossGlobalRef(env, &(evinfo->clazz));
 897     }
 898     if ( evinfo->object != NULL ) {
 899         tossGlobalRef(env, &(evinfo->object));
 900     }
 901     switch (evinfo->ei) {
 902         case EI_FIELD_MODIFICATION:
 903             if ( evinfo->u.field_modification.field_clazz != NULL ) {
 904                 tossGlobalRef(env, &(evinfo->u.field_modification.field_clazz));
 905             }
 906             sig = evinfo->u.field_modification.signature_type;
 907             if ((sig == JDWP_TAG(ARRAY)) || (sig == JDWP_TAG(OBJECT))) {
 908                 if ( evinfo->u.field_modification.new_value.l != NULL ) {
 909                     tossGlobalRef(env, &(evinfo->u.field_modification.new_value.l));
 910                 }
 911             }
 912             break;
 913         case EI_FIELD_ACCESS:
 914             if ( evinfo->u.field_access.field_clazz != NULL ) {
 915                 tossGlobalRef(env, &(evinfo->u.field_access.field_clazz));
 916             }
 917             break;
 918         case EI_EXCEPTION:
 919             if ( evinfo->u.exception.catch_clazz != NULL ) {
 920                 tossGlobalRef(env, &(evinfo->u.exception.catch_clazz));
 921             }
 922             break;
 923         default:
 924             break;
 925     }
 926 }
 927 




 834         clazz = *pclazz;
 835         *pclazz = NULL;
 836         saveGlobalRef(env, clazz, pclazz);
 837     }
 838     if ( evinfo->object != NULL ) {
 839         pobject = &(evinfo->object);
 840         object = *pobject;
 841         *pobject = NULL;
 842         saveGlobalRef(env, object, pobject);
 843     }
 844 
 845     switch (evinfo->ei) {
 846         case EI_FIELD_MODIFICATION:
 847             if ( evinfo->u.field_modification.field_clazz != NULL ) {
 848                 pclazz = &(evinfo->u.field_modification.field_clazz);
 849                 clazz = *pclazz;
 850                 *pclazz = NULL;
 851                 saveGlobalRef(env, clazz, pclazz);
 852             }
 853             sig = evinfo->u.field_modification.signature_type;
 854             if ((sig == JDWP_TAG(ARRAY)) || (sig == JDWP_TAG(OBJECT)) || (sig == JDWP_TAG(INLINE_OBJECT))) {
 855                 if ( evinfo->u.field_modification.new_value.l != NULL ) {
 856                     pobject = &(evinfo->u.field_modification.new_value.l);
 857                     object = *pobject;
 858                     *pobject = NULL;
 859                     saveGlobalRef(env, object, pobject);
 860                 }
 861             }
 862             break;
 863         case EI_FIELD_ACCESS:
 864             if ( evinfo->u.field_access.field_clazz != NULL ) {
 865                 pclazz = &(evinfo->u.field_access.field_clazz);
 866                 clazz = *pclazz;
 867                 *pclazz = NULL;
 868                 saveGlobalRef(env, clazz, pclazz);
 869             }
 870             break;
 871         case EI_EXCEPTION:
 872             if ( evinfo->u.exception.catch_clazz != NULL ) {
 873                 pclazz = &(evinfo->u.exception.catch_clazz);
 874                 clazz = *pclazz;


 887 
 888 static void
 889 tossEventInfoRefs(JNIEnv *env, EventInfo *evinfo)
 890 {
 891     char sig;
 892     if ( evinfo->thread != NULL ) {
 893         tossGlobalRef(env, &(evinfo->thread));
 894     }
 895     if ( evinfo->clazz != NULL ) {
 896         tossGlobalRef(env, &(evinfo->clazz));
 897     }
 898     if ( evinfo->object != NULL ) {
 899         tossGlobalRef(env, &(evinfo->object));
 900     }
 901     switch (evinfo->ei) {
 902         case EI_FIELD_MODIFICATION:
 903             if ( evinfo->u.field_modification.field_clazz != NULL ) {
 904                 tossGlobalRef(env, &(evinfo->u.field_modification.field_clazz));
 905             }
 906             sig = evinfo->u.field_modification.signature_type;
 907             if ((sig == JDWP_TAG(ARRAY)) || (sig == JDWP_TAG(OBJECT)) || (sig == JDWP_TAG(INLINE_OBJECT))) {
 908                 if ( evinfo->u.field_modification.new_value.l != NULL ) {
 909                     tossGlobalRef(env, &(evinfo->u.field_modification.new_value.l));
 910                 }
 911             }
 912             break;
 913         case EI_FIELD_ACCESS:
 914             if ( evinfo->u.field_access.field_clazz != NULL ) {
 915                 tossGlobalRef(env, &(evinfo->u.field_access.field_clazz));
 916             }
 917             break;
 918         case EI_EXCEPTION:
 919             if ( evinfo->u.exception.catch_clazz != NULL ) {
 920                 tossGlobalRef(env, &(evinfo->u.exception.catch_clazz));
 921             }
 922             break;
 923         default:
 924             break;
 925     }
 926 }
 927 


< prev index next >