< prev index next >

src/windows/native/sun/windows/awt.h

Print this page
rev 12527 : 8165543: Better window framing
Reviewed-by: serb


  40 
  41 #include "stdhdrs.h"
  42 #include "alloc.h"
  43 #include "awt_Debug.h"
  44 
  45 extern COLORREF DesktopColor2RGB(int colorIndex);
  46 
  47 class AwtObject;
  48 typedef AwtObject* PDATA;
  49 
  50 #define JNI_IS_TRUE(obj) ((obj) ? JNI_TRUE : JNI_FALSE)
  51 
  52 #define JNI_CHECK_NULL_GOTO(obj, msg, where) {                            \
  53     if (obj == NULL) {                                                    \
  54         env->ExceptionClear();                                            \
  55         JNU_ThrowNullPointerException(env, msg);                          \
  56         goto where;                                                       \
  57     }                                                                     \
  58 }
  59 
  60 #define JNI_CHECK_PEER_GOTO(peer, where) {                                \
  61     JNI_CHECK_NULL_GOTO(peer, "peer", where);                             \
  62     pData = JNI_GET_PDATA(peer);                                          \
  63     if (pData == NULL) {                                                  \
  64         THROW_NULL_PDATA_IF_NOT_DESTROYED(peer);                          \
  65         goto where;                                                       \
  66     }                                                                     \
  67 }
  68 
  69 #define JNI_CHECK_NULL_RETURN(obj, msg) {                                 \
  70     if (obj == NULL) {                                                    \
  71         env->ExceptionClear();                                            \
  72         JNU_ThrowNullPointerException(env, msg);                          \
  73         return;                                                           \
  74     }                                                                     \
  75 }
  76 
  77 #define JNI_CHECK_PEER_RETURN(peer) {                                     \
  78     JNI_CHECK_NULL_RETURN(peer, "peer");                                  \
  79     pData = JNI_GET_PDATA(peer);                                          \
  80     if (pData == NULL) {                                                  \
  81         THROW_NULL_PDATA_IF_NOT_DESTROYED(peer);                          \
  82         return;                                                           \
  83     }                                                                     \
  84 }
  85 
  86 #define JNI_CHECK_PEER_CREATION_RETURN(peer) {                            \
  87     if (peer == NULL ) {                                                  \
  88         return;                                                           \
  89     }                                                                     \
  90     pData = JNI_GET_PDATA(peer);                                          \
  91     if (pData == NULL) {                                                  \
  92         return;                                                           \
  93     }                                                                     \
  94 }
  95 
  96 #define JNI_CHECK_NULL_RETURN_NULL(obj, msg) {                            \
  97     if (obj == NULL) {                                                    \
  98         env->ExceptionClear();                                            \
  99         JNU_ThrowNullPointerException(env, msg);                          \
 100         return 0;                                                         \
 101     }                                                                     \
 102 }
 103 
 104 #define JNI_CHECK_NULL_RETURN_VAL(obj, msg, val) {                        \
 105     if (obj == NULL) {                                                    \
 106         env->ExceptionClear();                                            \
 107         JNU_ThrowNullPointerException(env, msg);                          \
 108         return val;                                                       \
 109     }                                                                     \
 110 }
 111 



























 112 #define JNI_CHECK_PEER_RETURN_NULL(peer) {                                \
 113     JNI_CHECK_NULL_RETURN_NULL(peer, "peer");                             \
 114     pData = JNI_GET_PDATA(peer);                                          \
 115     if (pData == NULL) {                                                  \
 116         THROW_NULL_PDATA_IF_NOT_DESTROYED(peer);                          \
 117         return 0;                                                         \
 118     }                                                                     \
 119 }
 120 



 121 #define JNI_CHECK_PEER_RETURN_VAL(peer, val) {                            \
 122     JNI_CHECK_NULL_RETURN_VAL(peer, "peer", val);                         \
 123     pData = JNI_GET_PDATA(peer);                                          \
 124     if (pData == NULL) {                                                  \
 125         THROW_NULL_PDATA_IF_NOT_DESTROYED(peer);                          \
 126         return val;                                                       \
 127     }                                                                     \
 128 }
 129 
 130 #define THROW_NULL_PDATA_IF_NOT_DESTROYED(peer) {                         \
 131     jboolean destroyed = JNI_GET_DESTROYED(peer);                         \
 132     if (destroyed != JNI_TRUE) {                                          \
 133         env->ExceptionClear();                                            \
 134         JNU_ThrowNullPointerException(env, "null pData");                 \
 135     }                                                                     \
 136 }
 137 
 138 #define JNI_GET_PDATA(peer) (PDATA) env->GetLongField(peer, AwtObject::pDataID)
 139 #define JNI_GET_DESTROYED(peer) env->GetBooleanField(peer, AwtObject::destroyedID)
 140 




  40 
  41 #include "stdhdrs.h"
  42 #include "alloc.h"
  43 #include "awt_Debug.h"
  44 
  45 extern COLORREF DesktopColor2RGB(int colorIndex);
  46 
  47 class AwtObject;
  48 typedef AwtObject* PDATA;
  49 
  50 #define JNI_IS_TRUE(obj) ((obj) ? JNI_TRUE : JNI_FALSE)
  51 
  52 #define JNI_CHECK_NULL_GOTO(obj, msg, where) {                            \
  53     if (obj == NULL) {                                                    \
  54         env->ExceptionClear();                                            \
  55         JNU_ThrowNullPointerException(env, msg);                          \
  56         goto where;                                                       \
  57     }                                                                     \
  58 }
  59 









  60 #define JNI_CHECK_NULL_RETURN(obj, msg) {                                 \
  61     if (obj == NULL) {                                                    \
  62         env->ExceptionClear();                                            \
  63         JNU_ThrowNullPointerException(env, msg);                          \
  64         return;                                                           \
  65     }                                                                     \
  66 }
  67 









  68 #define JNI_CHECK_PEER_CREATION_RETURN(peer) {                            \
  69     if (peer == NULL ) {                                                  \
  70         return;                                                           \
  71     }                                                                     \
  72     pData = JNI_GET_PDATA(peer);                                          \
  73     if (pData == NULL) {                                                  \
  74         return;                                                           \
  75     }                                                                     \
  76 }
  77 
  78 #define JNI_CHECK_NULL_RETURN_NULL(obj, msg) {                            \
  79     if (obj == NULL) {                                                    \
  80         env->ExceptionClear();                                            \
  81         JNU_ThrowNullPointerException(env, msg);                          \
  82         return 0;                                                         \
  83     }                                                                     \
  84 }
  85 
  86 #define JNI_CHECK_NULL_RETURN_VAL(obj, msg, val) {                        \
  87     if (obj == NULL) {                                                    \
  88         env->ExceptionClear();                                            \
  89         JNU_ThrowNullPointerException(env, msg);                          \
  90         return val;                                                       \
  91     }                                                                     \
  92 }
  93 
  94 /**
  95  * This macros must be used under SyncCall or on the Toolkit thread.
  96  */
  97 #define JNI_CHECK_PEER_GOTO(peer, where) {                                \
  98     JNI_CHECK_NULL_GOTO(peer, "peer", where);                             \
  99     pData = JNI_GET_PDATA(peer);                                          \
 100     if (pData == NULL) {                                                  \
 101         THROW_NULL_PDATA_IF_NOT_DESTROYED(peer);                          \
 102         goto where;                                                       \
 103     }                                                                     \
 104 }
 105 
 106 /**
 107  * This macros must be used under SyncCall or on the Toolkit thread.
 108  */
 109 #define JNI_CHECK_PEER_RETURN(peer) {                                     \
 110     JNI_CHECK_NULL_RETURN(peer, "peer");                                  \
 111     pData = JNI_GET_PDATA(peer);                                          \
 112     if (pData == NULL) {                                                  \
 113         THROW_NULL_PDATA_IF_NOT_DESTROYED(peer);                          \
 114         return;                                                           \
 115     }                                                                     \
 116 }
 117 
 118 /**
 119  * This macros must be used under SyncCall or on the Toolkit thread.
 120  */
 121 #define JNI_CHECK_PEER_RETURN_NULL(peer) {                                \
 122     JNI_CHECK_NULL_RETURN_NULL(peer, "peer");                             \
 123     pData = JNI_GET_PDATA(peer);                                          \
 124     if (pData == NULL) {                                                  \
 125         THROW_NULL_PDATA_IF_NOT_DESTROYED(peer);                          \
 126         return 0;                                                         \
 127     }                                                                     \
 128 }
 129 
 130 /**
 131  * This macros must be used under SyncCall or on the Toolkit thread.
 132  */
 133 #define JNI_CHECK_PEER_RETURN_VAL(peer, val) {                            \
 134     JNI_CHECK_NULL_RETURN_VAL(peer, "peer", val);                         \
 135     pData = JNI_GET_PDATA(peer);                                          \
 136     if (pData == NULL) {                                                  \
 137         THROW_NULL_PDATA_IF_NOT_DESTROYED(peer);                          \
 138         return val;                                                       \
 139     }                                                                     \
 140 }
 141 
 142 #define THROW_NULL_PDATA_IF_NOT_DESTROYED(peer) {                         \
 143     jboolean destroyed = JNI_GET_DESTROYED(peer);                         \
 144     if (destroyed != JNI_TRUE) {                                          \
 145         env->ExceptionClear();                                            \
 146         JNU_ThrowNullPointerException(env, "null pData");                 \
 147     }                                                                     \
 148 }
 149 
 150 #define JNI_GET_PDATA(peer) (PDATA) env->GetLongField(peer, AwtObject::pDataID)
 151 #define JNI_GET_DESTROYED(peer) env->GetBooleanField(peer, AwtObject::destroyedID)
 152 


< prev index next >