jdk/src/windows/native/sun/windows/awt.h
changeset 108 deaaed5cedb7
parent 2 90ce3da70b43
child 887 0aab8d3fa11a
equal deleted inserted replaced
107:ed0c7cfb3666 108:deaaed5cedb7
     1 /*
     1 /*
     2  * Copyright 1996-2006 Sun Microsystems, Inc.  All Rights Reserved.
     2  * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.  Sun designates this
     7  * published by the Free Software Foundation.  Sun designates this
    45 
    45 
    46 #define JNI_CHECK_PEER_GOTO(peer, where) {                                \
    46 #define JNI_CHECK_PEER_GOTO(peer, where) {                                \
    47     JNI_CHECK_NULL_GOTO(peer, "peer", where);                             \
    47     JNI_CHECK_NULL_GOTO(peer, "peer", where);                             \
    48     pData = JNI_GET_PDATA(peer);                                          \
    48     pData = JNI_GET_PDATA(peer);                                          \
    49     if (pData == NULL) {                                                  \
    49     if (pData == NULL) {                                                  \
    50         JNU_ThrowNullPointerException(env, "null pData");                 \
    50         THROW_NULL_PDATA_IF_NOT_DESTROYED(peer);                          \
    51         goto where;                                                       \
    51         goto where;                                                       \
    52     }                                                                     \
    52     }                                                                     \
    53 }
    53 }
    54 
    54 
    55 #define JNI_CHECK_NULL_RETURN(obj, msg) {                                 \
    55 #define JNI_CHECK_NULL_RETURN(obj, msg) {                                 \
    61 
    61 
    62 #define JNI_CHECK_PEER_RETURN(peer) {                                     \
    62 #define JNI_CHECK_PEER_RETURN(peer) {                                     \
    63     JNI_CHECK_NULL_RETURN(peer, "peer");                                  \
    63     JNI_CHECK_NULL_RETURN(peer, "peer");                                  \
    64     pData = JNI_GET_PDATA(peer);                                          \
    64     pData = JNI_GET_PDATA(peer);                                          \
    65     if (pData == NULL) {                                                  \
    65     if (pData == NULL) {                                                  \
    66         JNU_ThrowNullPointerException(env, "null pData");                 \
    66         THROW_NULL_PDATA_IF_NOT_DESTROYED(peer);                          \
    67         return;                                                           \
    67         return;                                                           \
    68     }                                                                     \
    68     }                                                                     \
    69 }
    69 }
    70 
    70 
    71 #define JNI_CHECK_PEER_CREATION_RETURN(peer) {                            \
    71 #define JNI_CHECK_PEER_CREATION_RETURN(peer) {                            \
    94 
    94 
    95 #define JNI_CHECK_PEER_RETURN_NULL(peer) {                                \
    95 #define JNI_CHECK_PEER_RETURN_NULL(peer) {                                \
    96     JNI_CHECK_NULL_RETURN_NULL(peer, "peer");                             \
    96     JNI_CHECK_NULL_RETURN_NULL(peer, "peer");                             \
    97     pData = JNI_GET_PDATA(peer);                                          \
    97     pData = JNI_GET_PDATA(peer);                                          \
    98     if (pData == NULL) {                                                  \
    98     if (pData == NULL) {                                                  \
    99         JNU_ThrowNullPointerException(env, "null pData");                 \
    99         THROW_NULL_PDATA_IF_NOT_DESTROYED(peer);                          \
   100         return 0;                                                         \
   100         return 0;                                                         \
   101     }                                                                     \
   101     }                                                                     \
   102 }
   102 }
   103 
   103 
   104 #define JNI_CHECK_PEER_RETURN_VAL(peer, val) {                            \
   104 #define JNI_CHECK_PEER_RETURN_VAL(peer, val) {                            \
   105     JNI_CHECK_NULL_RETURN_VAL(peer, "peer", val);                         \
   105     JNI_CHECK_NULL_RETURN_VAL(peer, "peer", val);                         \
   106     pData = JNI_GET_PDATA(peer);                                          \
   106     pData = JNI_GET_PDATA(peer);                                          \
   107     if (pData == NULL) {                                                  \
   107     if (pData == NULL) {                                                  \
       
   108         THROW_NULL_PDATA_IF_NOT_DESTROYED(peer);                          \
       
   109         return val;                                                       \
       
   110     }                                                                     \
       
   111 }
       
   112 
       
   113 #define THROW_NULL_PDATA_IF_NOT_DESTROYED(peer) {                         \
       
   114     jboolean destroyed = JNI_GET_DESTROYED(peer);                         \
       
   115     if (destroyed != JNI_TRUE) {                                          \
   108         JNU_ThrowNullPointerException(env, "null pData");                 \
   116         JNU_ThrowNullPointerException(env, "null pData");                 \
   109         return val;                                                       \
       
   110     }                                                                     \
   117     }                                                                     \
   111 }
   118 }
   112 
   119 
   113 #define JNI_GET_PDATA(peer) (PDATA) env->GetLongField(peer, AwtObject::pDataID)
   120 #define JNI_GET_PDATA(peer) (PDATA) env->GetLongField(peer, AwtObject::pDataID)
       
   121 #define JNI_GET_DESTROYED(peer) env->GetBooleanField(peer, AwtObject::destroyedID)
   114 
   122 
   115 #define JNI_SET_PDATA(peer, data) env->SetLongField(peer,                  \
   123 #define JNI_SET_PDATA(peer, data) env->SetLongField(peer,                  \
   116                                                    AwtObject::pDataID,    \
   124                                                     AwtObject::pDataID,    \
   117                                                    (jlong)data)
   125                                                     (jlong)data)
       
   126 #define JNI_SET_DESTROYED(peer) env->SetBooleanField(peer,                   \
       
   127                                                      AwtObject::destroyedID, \
       
   128                                                      JNI_TRUE)
   118 /*  /NEW JNI */
   129 /*  /NEW JNI */
   119 
   130 
   120 /*
   131 /*
   121  * IS_NT returns TRUE on NT, 2000, XP
   132  * IS_NT returns TRUE on NT, 2000, XP
   122  * IS_WIN2000 returns TRUE on 2000, XP
   133  * IS_WIN2000 returns TRUE on 2000, XP