]> git.saurik.com Git - apple/icu.git/blobdiff - icuSources/common/utrie.h
ICU-66108.tar.gz
[apple/icu.git] / icuSources / common / utrie.h
index 3e2197eda6c2619b41e5501b1cd43946d1e454a2..532ba778eb6ed143d7c23965ef9fd7a0ba016544 100644 (file)
@@ -182,7 +182,7 @@ typedef struct UTrie UTrie;
     ]
 
 /** Internal trie getter from a pair of surrogates */
-#define _UTRIE_GET_FROM_PAIR(trie, data, c, c2, result, resultType) { \
+#define _UTRIE_GET_FROM_PAIR(trie, data, c, c2, result, resultType) UPRV_BLOCK_MACRO_BEGIN { \
     int32_t __offset; \
 \
     /* get data for lead surrogate */ \
@@ -195,18 +195,18 @@ typedef struct UTrie UTrie;
     } else { \
         (result)=(resultType)((trie)->initialValue); \
     } \
-}
+} UPRV_BLOCK_MACRO_END
 
 /** Internal trie getter from a BMP code point, treating a lead surrogate as a normal code point */
 #define _UTRIE_GET_FROM_BMP(trie, data, c16) \
-    _UTRIE_GET_RAW(trie, data, 0xd800<=(c16) && (c16)<=0xdbff ? UTRIE_LEAD_INDEX_DISP : 0, c16);
+    _UTRIE_GET_RAW(trie, data, 0xd800<=(c16) && (c16)<=0xdbff ? UTRIE_LEAD_INDEX_DISP : 0, c16)
 
 /**
  * Internal trie getter from a code point.
  * Could be faster(?) but longer with
  *   if((c32)<=0xd7ff) { (result)=_UTRIE_GET_RAW(trie, data, 0, c32); }
  */
-#define _UTRIE_GET(trie, data, c32, result, resultType) \
+#define _UTRIE_GET(trie, data, c32, result, resultType) UPRV_BLOCK_MACRO_BEGIN { \
     if((uint32_t)(c32)<=0xffff) { \
         /* BMP code points */ \
         (result)=_UTRIE_GET_FROM_BMP(trie, data, c32); \
@@ -217,10 +217,11 @@ typedef struct UTrie UTrie;
     } else { \
         /* out of range */ \
         (result)=(resultType)((trie)->initialValue); \
-    }
+    } \
+} UPRV_BLOCK_MACRO_END
 
 /** Internal next-post-increment: get the next code point (c, c2) and its data */
-#define _UTRIE_NEXT(trie, data, src, limit, c, c2, result, resultType) { \
+#define _UTRIE_NEXT(trie, data, src, limit, c, c2, result, resultType) UPRV_BLOCK_MACRO_BEGIN { \
     (c)=*(src)++; \
     if(!U16_IS_LEAD(c)) { \
         (c2)=0; \
@@ -233,10 +234,10 @@ typedef struct UTrie UTrie;
         (c2)=0; \
         (result)=_UTRIE_GET_RAW((trie), data, UTRIE_LEAD_INDEX_DISP, (c)); \
     } \
-}
+} UPRV_BLOCK_MACRO_END
 
 /** Internal previous: get the previous code point (c, c2) and its data */
-#define _UTRIE_PREVIOUS(trie, data, start, src, c, c2, result, resultType) { \
+#define _UTRIE_PREVIOUS(trie, data, start, src, c, c2, result, resultType) UPRV_BLOCK_MACRO_BEGIN { \
     (c)=*--(src); \
     if(!U16_IS_SURROGATE(c)) { \
         (c2)=0; \
@@ -257,7 +258,7 @@ typedef struct UTrie UTrie;
         (c2)=0; \
         (result)=_UTRIE_GET_RAW((trie), data, UTRIE_LEAD_INDEX_DISP, (c)); \
     } \
-}
+} UPRV_BLOCK_MACRO_END
 
 /* Public UTrie API ---------------------------------------------------------*/