Move Android to the builtin rune table.
authorDan Albert <danalbert@google.com>
Wed, 11 Mar 2015 00:51:06 +0000 (00:51 +0000)
committerDan Albert <danalbert@google.com>
Wed, 11 Mar 2015 00:51:06 +0000 (00:51 +0000)
llvm-svn: 231897

libcxx/include/__config
libcxx/include/__locale
libcxx/src/locale.cpp

index c105518..5dc6c82 100644 (file)
@@ -719,4 +719,8 @@ extern "C" void __sanitizer_annotate_contiguous_container(
          _LIBCPP_HAS_NO_THREADS is defined.
 #endif
 
+#if defined(__ANDROID__)
+#define _LIBCPP_PROVIDES_DEFAULT_RUNE_TABLE
+#endif
+
 #endif  // _LIBCPP_CONFIG
index 4efdc2d..625d0f8 100644 (file)
@@ -353,15 +353,13 @@ public:
     static const mask punct  = _PUNCT;
     static const mask xdigit = _HEX;
     static const mask blank  = _BLANK;
-#elif defined(__APPLE__) || defined(__FreeBSD__) || defined(__EMSCRIPTEN__) || defined(__NetBSD__) || defined(__ANDROID__)
+#elif defined(__APPLE__) || defined(__FreeBSD__) || defined(__EMSCRIPTEN__) || defined(__NetBSD__)
 # ifdef __APPLE__
     typedef __uint32_t mask;
 # elif defined(__FreeBSD__)
     typedef unsigned long mask;
 # elif defined(__EMSCRIPTEN__) ||  defined(__NetBSD__)
     typedef unsigned short mask;
-# elif defined(__ANDROID__)
-    typedef unsigned char mask;
 # endif
     static const mask space  = _CTYPE_S;
     static const mask print  = _CTYPE_R;
@@ -371,11 +369,7 @@ public:
     static const mask alpha  = _CTYPE_A;
     static const mask digit  = _CTYPE_D;
     static const mask punct  = _CTYPE_P;
-# if defined(__ANDROID__)
-    static const mask xdigit = _CTYPE_X | _CTYPE_D;
-# else
     static const mask xdigit = _CTYPE_X;
-# endif
 
 # if defined(__NetBSD__)
     static const mask blank  = _CTYPE_BL;
index 2115340..7290226 100644 (file)
@@ -1119,8 +1119,6 @@ ctype<char>::classic_table()  _NOEXCEPT
     return _ctype_ + 1;
 #elif defined(_AIX)
     return (const unsigned int *)__lc_ctype_ptr->obj->mask;
-#elif defined(__ANDROID__)
-    return reinterpret_cast<const unsigned char*>(_ctype_) + 1;
 #else
     // Platform not supported: abort so the person doing the port knows what to
     // fix