Undo inlining of `TfIsUtf8CodePointXid{Start,Continue}`
authorMatt Kuruc <mkuruc@nvidia.com>
Wed, 20 Dec 2023 22:21:51 +0000 (14:21 -0800)
committerMatt Kuruc <mkuruc@nvidia.com>
Wed, 20 Dec 2023 23:00:19 +0000 (15:00 -0800)
pxr/base/tf/testenv/unicodeUtils.cpp
pxr/base/tf/unicodeUtils.cpp
pxr/base/tf/unicodeUtils.h

index 1c8f77d71c26d4c168e324ea01c402a797bc978a..05d6fc7f456f1dbee4d1bfdd406596ccaba6f165 100644 (file)
@@ -370,10 +370,12 @@ TestCharacterClasses()
     TF_AXIOM(!TfIsUtf8CodePointXidContinue(
         std::numeric_limits<uint32_t>::max()));
 
-    // also TF_MAX_CODE_POINT is our upper limit, and should be an invalid
-    // code point due to its being reserved
-    TF_AXIOM(!TfIsUtf8CodePointXidStart(TF_MAX_CODE_POINT));
-    TF_AXIOM(!TfIsUtf8CodePointXidContinue(TF_MAX_CODE_POINT));
+    // Test TfUtf8CodePoint::MaximumValue (the last valid) and
+    // TfUtf8CodePoint::MaximumValue + 1 (the first invalid)
+    TF_AXIOM(!TfIsUtf8CodePointXidStart(TfUtf8CodePoint::MaximumValue));
+    TF_AXIOM(!TfIsUtf8CodePointXidContinue(TfUtf8CodePoint::MaximumValue));
+    TF_AXIOM(!TfIsUtf8CodePointXidStart(TfUtf8CodePoint::MaximumValue + 1));
+    TF_AXIOM(!TfIsUtf8CodePointXidContinue(TfUtf8CodePoint::MaximumValue + 1));
 
     return true;
 }
index 05dc282c6e58f1f932187e7a73b2da874c29f0db..309aa3ec7efb5fc0456e36c41746acebdc3b0e41 100644 (file)
@@ -23,6 +23,7 @@
 //
 
 #include "pxr/base/tf/diagnostic.h"
+#include "pxr/base/tf/unicodeCharacterClasses.h"
 #include "pxr/base/tf/unicodeUtils.h"
 
 PXR_NAMESPACE_OPEN_SCOPE
@@ -222,4 +223,14 @@ uint32_t TfUtf8CodePointIterator::_GetCodePoint() const
     return TfUtf8InvalidCodePoint.AsUInt32();
 }
 
+bool TfIsUtf8CodePointXidStart(uint32_t codePoint)
+{
+    return TfUnicodeGetXidStartFlagData().IsXidStartCodePoint(codePoint);
+}
+
+bool TfIsUtf8CodePointXidContinue(uint32_t codePoint)
+{
+    return TfUnicodeGetXidContinueFlagData().IsXidContinueCodePoint(codePoint);
+}
+
 PXR_NAMESPACE_CLOSE_SCOPE
\ No newline at end of file
index 4f9e242be54848d84e67ba57823b2196cfd9d46c..0b0848d4f6c63dcf372c49a4bb685394f173490e 100644 (file)
@@ -30,7 +30,6 @@
 #include "pxr/pxr.h"
 #include "pxr/base/tf/api.h"
 #include "pxr/base/tf/diagnostic.h"
-#include "pxr/base/tf/unicodeCharacterClasses.h"
 
 #include <ostream>
 #include <string>
@@ -382,10 +381,7 @@ TfUtf8CodePointView::EndAsIterator() const
 /// That is, the character must have a category of Lu | Ll | Lt | Lm | Lo | Nl
 ///
 TF_API
-inline bool TfIsUtf8CodePointXidStart(uint32_t codePoint)
-{
-    return TfUnicodeGetXidStartFlagData().IsXidStartCodePoint(codePoint);
-}
+bool TfIsUtf8CodePointXidStart(uint32_t codePoint);
 
 /// Determines whether the given Unicode \a codePoint is in the XID_Continue
 /// character class.
@@ -397,10 +393,7 @@ inline bool TfIsUtf8CodePointXidStart(uint32_t codePoint)
 /// XID_Start | Nd | Mn | Mc | Pc
 ///
 TF_API
-inline bool TfIsUtf8CodePointXidContinue(uint32_t codePoint)
-{
-    return TfUnicodeGetXidContinueFlagData().IsXidContinueCodePoint(codePoint);
-}
+bool TfIsUtf8CodePointXidContinue(uint32_t codePoint);
 
 PXR_NAMESPACE_CLOSE_SCOPE