[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    =?utf-8?q?=5Bkdelibs=5D_/=3A_Get_rid_of_bogus_=7BUString=2CIdent?=
From:       Maks Orlovich <maksim () kde ! org>
Date:       2011-03-18 1:33:29
Message-ID: 20110318013329.1D1A5A60BB () git ! kde ! org
[Download RAW message or body]

Git commit d739fd894ffa1725a33f19473ffc20e9beb2e541 by Maks Orlovich.
Committed on 01/03/2011 at 01:01.
Pushed by orlovich into branch 'master'.

Get rid of bogus {UString,Identifier}::toUInt32.

Despite the name, it did something different from ES's toUInt32 op, and
basically every place we used it we wanted toArrayIndex/toStrictUInt32
instead.

M  +3    -3    khtml/ecma/kjs_binding.h     
M  +3    -3    khtml/ecma/kjs_html.cpp     
M  +3    -3    khtml/ecma/kjs_navigator.cpp     
M  +3    -3    kjs/function.cpp     
M  +0    -2    kjs/identifier.h     
M  +0    -32   kjs/ustring.cpp     
M  +0    -9    kjs/ustring.h     

http://commits.kde.org/kdelibs/d739fd894ffa1725a33f19473ffc20e9beb2e541

diff --git a/khtml/ecma/kjs_binding.h b/khtml/ecma/kjs_binding.h
index 0731dd4..b967744 100644
--- a/khtml/ecma/kjs_binding.h
+++ b/khtml/ecma/kjs_binding.h
@@ -273,7 +273,7 @@ namespace KJS {
       const Identifier& propertyName, PropertySlot& slot)
   {
     bool ok;
-    unsigned u = propertyName.toUInt32(&ok);
+    unsigned u = propertyName.toArrayIndex(&ok);
     if (ok && u < listObj.length()) {
       slot.setCustomIndex(thisObj, u, indexGetterAdapter<ThisImp>);
       return true;
@@ -289,7 +289,7 @@ namespace KJS {
       const Identifier& propertyName, PropertySlot& slot)
   {
     bool ok;
-    unsigned u = propertyName.toUInt32(&ok);
+    unsigned u = propertyName.toArrayIndex(&ok);
     if (ok && u < lengthLimit) {
       slot.setCustomIndex(thisObj, u, indexGetterAdapter<ThisImp>);
       return true;
@@ -311,7 +311,7 @@ namespace KJS {
   inline bool getIndexSlot(ThisImp* thisObj, const Identifier& propertyName, \
PropertySlot& slot)  {
     bool ok;
-    unsigned u = propertyName.toUInt32(&ok);
+    unsigned u = propertyName.toArrayIndex(&ok);
     if (ok) {
       slot.setCustomIndex(thisObj, u, indexGetterAdapter<ThisImp>);
       return true;
diff --git a/khtml/ecma/kjs_html.cpp b/khtml/ecma/kjs_html.cpp
index db884a7..f73f051 100644
--- a/khtml/ecma/kjs_html.cpp
+++ b/khtml/ecma/kjs_html.cpp
@@ -3119,7 +3119,7 @@ JSValue* KJS::HTMLCollection::callAsFunction(ExecState *exec, \
JSObject *, const  // support for document.all(<index>) etc.
     bool ok;
     UString s = args[0]->toString(exec);
-    unsigned int u = s.toUInt32(&ok, false);
+    unsigned int u = s.toArrayIndex(&ok);
     if (ok)
       return getDOMNode(exec, collection.item(u));
     // support for document.images('<name>') etc.
@@ -3129,7 +3129,7 @@ JSValue* KJS::HTMLCollection::callAsFunction(ExecState *exec, \
JSObject *, const  {
     bool ok;
     UString s = args[0]->toString(exec);
-    unsigned int u = args[1]->toString(exec).toUInt32(&ok, false);
+    unsigned int u = args[1]->toString(exec).toArrayIndex(&ok);
     if (ok)
     {
       DOM::DOMString pstr = s.domString();
@@ -3190,7 +3190,7 @@ JSValue* KJS::HTMLCollectionProtoFunc::callAsFunction(ExecState \
*exec, JSObject  // support for item(<index>) (DOM)
     UString s = args[0]->toString(exec);
     bool ok;
-    unsigned int u = s.toUInt32(&ok, false);
+    unsigned int u = s.toArrayIndex(&ok);
     if (ok) {
       return getDOMNode(exec,coll.item(u));
     }
diff --git a/khtml/ecma/kjs_navigator.cpp b/khtml/ecma/kjs_navigator.cpp
index 1ece78a..cc18a2b 100644
--- a/khtml/ecma/kjs_navigator.cpp
+++ b/khtml/ecma/kjs_navigator.cpp
@@ -431,7 +431,7 @@ bool Plugins::getOwnPropertySlot(ExecState *exec, const \
Identifier &propertyName  if (pluginsEnabled()) {
     // plugins[#]
     bool ok;
-    unsigned int i = propertyName.toUInt32(&ok);
+    unsigned int i = propertyName.toArrayIndex(&ok);
     if (ok && i < static_cast<unsigned>(plugins->count())) {
       slot.setCustomIndex(this, i, indexGetter);
       return true;
@@ -522,7 +522,7 @@ bool MimeTypes::getOwnPropertySlot(ExecState *exec, const \
Identifier& propertyNa  if (pluginsEnabled()) {
     // mimeTypes[#]
     bool ok;
-    unsigned int i = propertyName.toUInt32(&ok);
+    unsigned int i = propertyName.toArrayIndex(&ok);
     if (ok && i < static_cast<unsigned>(mimes->count())) {
       slot.setCustomIndex(this, i, indexGetter);
       return true;
@@ -624,7 +624,7 @@ bool Plugin::getOwnPropertySlot(ExecState *exec, const \
Identifier& propertyName,  
   // plugin[#]
   bool ok;
-  unsigned int i = propertyName.toUInt32(&ok);
+  unsigned int i = propertyName.toArrayIndex(&ok);
   if (ok && i < static_cast<unsigned>(m_info->mimes.count())) {
     slot.setCustomIndex(this, i, indexGetter);
     return true;
diff --git a/kjs/function.cpp b/kjs/function.cpp
index f01d0d8..5f39ae6 100644
--- a/kjs/function.cpp
+++ b/kjs/function.cpp
@@ -372,7 +372,7 @@ IndexToNameMap::~IndexToNameMap() {
 bool IndexToNameMap::isMapped(const Identifier &index) const
 {
   bool indexIsNumber;
-  int indexAsNumber = index.toUInt32(&indexIsNumber);
+  int indexAsNumber = index.toStrictUInt32(&indexIsNumber);
 
   if (!indexIsNumber)
     return false;
@@ -389,7 +389,7 @@ bool IndexToNameMap::isMapped(const Identifier &index) const
 void IndexToNameMap::unMap(const Identifier &index)
 {
   bool indexIsNumber;
-  int indexAsNumber = index.toUInt32(&indexIsNumber);
+  int indexAsNumber = index.toStrictUInt32(&indexIsNumber);
 
   assert(indexIsNumber && indexAsNumber < size);
 
@@ -404,7 +404,7 @@ Identifier& IndexToNameMap::operator[](int index)
 Identifier& IndexToNameMap::operator[](const Identifier &index)
 {
   bool indexIsNumber;
-  int indexAsNumber = index.toUInt32(&indexIsNumber);
+  int indexAsNumber = index.toStrictUInt32(&indexIsNumber);
 
   assert(indexIsNumber && indexAsNumber < size);
 
diff --git a/kjs/identifier.h b/kjs/identifier.h
index b3c8f68..441d1a1 100644
--- a/kjs/identifier.h
+++ b/kjs/identifier.h
@@ -86,8 +86,6 @@ namespace KJS {
 	*/
         bool isEmpty() const { return _ustring.isEmpty(); }
 
-        uint32_t toUInt32(bool* ok) const { return _ustring.toUInt32(ok); }
-        uint32_t toUInt32(bool* ok, bool tolerateEmptyString) const { return \
                _ustring.toUInt32(ok, tolerateEmptyString); };
         uint32_t toStrictUInt32(bool* ok) const { return \
                _ustring.toStrictUInt32(ok); }
         unsigned toArrayIndex(bool* ok) const { return _ustring.toArrayIndex(ok); }
         double toDouble() const { return _ustring.toDouble(); }
diff --git a/kjs/ustring.cpp b/kjs/ustring.cpp
index 7eff52c..0d25862 100644
--- a/kjs/ustring.cpp
+++ b/kjs/ustring.cpp
@@ -1080,38 +1080,6 @@ double UString::toDouble() const
   return toDouble(false, true);
 }
 
-uint32_t UString::toUInt32(bool *ok) const
-{
-  double d = toDouble();
-  bool b = true;
-
-  if (d != static_cast<uint32_t>(d)) {
-    b = false;
-    d = 0;
-  }
-
-  if (ok)
-    *ok = b;
-
-  return static_cast<uint32_t>(d);
-}
-
-uint32_t UString::toUInt32(bool *ok, bool tolerateEmptyString) const
-{
-  double d = toDouble(false, tolerateEmptyString);
-  bool b = true;
-
-  if (d != static_cast<uint32_t>(d)) {
-    b = false;
-    d = 0;
-  }
-
-  if (ok)
-    *ok = b;
-
-  return static_cast<uint32_t>(d);
-}
-
 uint32_t UString::toStrictUInt32(bool *ok) const
 {
   if (ok)
diff --git a/kjs/ustring.h b/kjs/ustring.h
index ec9c63b..49370ef 100644
--- a/kjs/ustring.h
+++ b/kjs/ustring.h
@@ -379,15 +379,6 @@ namespace KJS {
      * Attempts an conversion to a 32-bit integer. ok will be set
      * according to the success.
      */
-    uint32_t toUInt32(bool *ok = 0) const;
-    /**
-     * Attempts an conversion to a 32-bit integer. ok will be set
-     * according to the success.
-     *
-     * @param tolerateEmptyString if false, toUInt32 will return false
-     * for *ok for an empty string.
-     */
-    uint32_t toUInt32(bool *ok, bool tolerateEmptyString) const;
     uint32_t toStrictUInt32(bool *ok = 0) const;
 
     /**


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic