]> git.saurik.com Git - apple/icu.git/blobdiff - icuSources/i18n/inputext.cpp
ICU-62123.0.1.tar.gz
[apple/icu.git] / icuSources / i18n / inputext.cpp
index a36a931ab551ee8c8be8caa561620aba2237ff3b..2d4f8a388af6126f69bae095dc84c7158f2b38aa 100644 (file)
@@ -1,6 +1,8 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
 /*
  **********************************************************************
- *   Copyright (C) 2005-2006, International Business Machines
+ *   Copyright (C) 2005-2016, International Business Machines
  *   Corporation and others.  All Rights Reserved.
  **********************************************************************
  */
@@ -20,12 +22,10 @@ U_NAMESPACE_BEGIN
 
 #define BUFFER_SIZE 8192
 
-#define ARRAY_SIZE(array) (sizeof array / sizeof array[0])
-
 #define NEW_ARRAY(type,count) (type *) uprv_malloc((count) * sizeof(type))
 #define DELETE_ARRAY(array) uprv_free((void *) (array))
 
-InputText::InputText()
+InputText::InputText(UErrorCode &status)
     : fInputBytes(NEW_ARRAY(uint8_t, BUFFER_SIZE)), // The text to be checked.  Markup will have been
                                                  //   removed if appropriate.
       fByteStats(NEW_ARRAY(int16_t, 256)),       // byte frequency statistics for the input text.
@@ -33,8 +33,10 @@ InputText::InputText()
       fDeclaredEncoding(0),
       fRawInput(0),
       fRawLength(0)
-{  
-
+{
+    if (fInputBytes == NULL || fByteStats == NULL) {
+        status = U_MEMORY_ALLOCATION_ERROR;
+    }
 }
 
 InputText::~InputText()
@@ -49,14 +51,14 @@ void InputText::setText(const char *in, int32_t len)
     fInputLen  = 0;
     fC1Bytes   = FALSE;
     fRawInput  = (const uint8_t *) in;
-    fRawLength = len == -1? uprv_strlen(in) : len;
+    fRawLength = len == -1? (int32_t)uprv_strlen(in) : len;
 }
 
 void InputText::setDeclaredEncoding(const char* encoding, int32_t len)
 {
     if(encoding) {
         if (len == -1) {
-            len = uprv_strlen(encoding);
+            len = (int32_t)uprv_strlen(encoding);
         }
 
         len += 1;     // to make place for the \0 at the end.