[Libreoffice-commits] .: codemaker/source registry/inc registry/source

Stephan Bergmann sbergmann at kemper.freedesktop.org
Thu Mar 29 03:08:25 PDT 2012


 codemaker/source/cppumaker/cpputype.cxx |    3 +--
 codemaker/source/javamaker/javatype.cxx |    5 +----
 registry/inc/registry/types.h           |    2 +-
 registry/source/reflread.cxx            |    9 +++++----
 registry/source/reflwrit.cxx            |    3 ++-
 registry/source/regimpl.cxx             |    4 +---
 6 files changed, 11 insertions(+), 15 deletions(-)

New commits:
commit 66a88dc17e91d03a130b21a511ce298dd5a52e12
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Thu Mar 29 12:06:33 2012 +0200

    UNO BYTE is signed
    
    This is hopefully a better fix for c589fa17b8f3e6ded0d1e04120781eb5d6735bc7
    "Dalvik enforces byte constants being in range (-128..127)."

diff --git a/codemaker/source/cppumaker/cpputype.cxx b/codemaker/source/cppumaker/cpputype.cxx
index 7c0326d..64dad4d 100644
--- a/codemaker/source/cppumaker/cpputype.cxx
+++ b/codemaker/source/cppumaker/cpputype.cxx
@@ -1262,8 +1262,7 @@ void CppuType::dumpConstantValue(FileStream& o, sal_uInt16 index)
                 o << "sal_False";
             break;
         case RT_TYPE_BYTE:
-            o << "(sal_Int8)"
-              << sal::static_int_cast< sal_Int8 >(constValue.m_value.aByte);
+            o << "(sal_Int8)" << constValue.m_value.aByte;
             break;
         case RT_TYPE_INT16:
             o << "(sal_Int16)" << constValue.m_value.aShort;
diff --git a/codemaker/source/javamaker/javatype.cxx b/codemaker/source/javamaker/javatype.cxx
index f297980..1453122 100644
--- a/codemaker/source/javamaker/javatype.cxx
+++ b/codemaker/source/javamaker/javatype.cxx
@@ -2447,10 +2447,7 @@ void addConstant(
                 rtl::OString(
                     RTL_CONSTASCII_STRINGPARAM("Bad type information"))); //TODO
         }
-        if (fieldValue.m_value.aByte < 0x80)
-            valueIndex = classFile->addIntegerInfo(fieldValue.m_value.aByte);
-        else
-            valueIndex = classFile->addIntegerInfo(-256 + (int) fieldValue.m_value.aByte);
+        valueIndex = classFile->addIntegerInfo(fieldValue.m_value.aByte);
         break;
 
     case codemaker::UnoType::SORT_SHORT:
diff --git a/registry/inc/registry/types.h b/registry/inc/registry/types.h
index cee37bb..77ae249 100644
--- a/registry/inc/registry/types.h
+++ b/registry/inc/registry/types.h
@@ -218,7 +218,7 @@ enum RTValueType {
  */
 union RTConstValueUnion {
     sal_Bool aBool;
-    sal_uInt8 aByte;
+    sal_Int8 aByte;
     sal_Int16 aShort;
     sal_uInt16 aUShort;
     sal_Int32 aLong;
diff --git a/registry/source/reflread.cxx b/registry/source/reflread.cxx
index cac943f..e8ddab0 100644
--- a/registry/source/reflread.cxx
+++ b/registry/source/reflread.cxx
@@ -259,7 +259,7 @@ public:
 
     const sal_Char*     readUTF8NameConstant(sal_uInt16 index);
     sal_Bool            readBOOLConstant(sal_uInt16 index);
-    sal_uInt8           readBYTEConstant(sal_uInt16 index);
+    sal_Int8            readBYTEConstant(sal_uInt16 index);
     sal_Int16           readINT16Constant(sal_uInt16 index);
     sal_uInt16          readUINT16Constant(sal_uInt16 index);
     sal_Int32           readINT32Constant(sal_uInt16 index);
@@ -367,15 +367,16 @@ sal_Bool ConstantPool::readBOOLConstant(sal_uInt16 index)
     return aBool;
 }
 
-sal_uInt8 ConstantPool::readBYTEConstant(sal_uInt16 index)
+sal_Int8 ConstantPool::readBYTEConstant(sal_uInt16 index)
 {
-    sal_uInt8 aByte = sal_False;
+    sal_Int8 aByte = 0;
 
     if (m_pIndex && (index> 0) && (index <= m_numOfEntries))
     {
         if (readUINT16(m_pIndex[index - 1] + CP_OFFSET_ENTRY_TAG) == CP_TAG_CONST_BYTE)
         {
-            aByte = readBYTE(m_pIndex[index - 1] + CP_OFFSET_ENTRY_DATA);
+            aByte = static_cast< sal_Int8 >(
+                readBYTE(m_pIndex[index - 1] + CP_OFFSET_ENTRY_DATA));
         }
     }
 
diff --git a/registry/source/reflwrit.cxx b/registry/source/reflwrit.cxx
index 9fb415a..791a6e4 100644
--- a/registry/source/reflwrit.cxx
+++ b/registry/source/reflwrit.cxx
@@ -302,7 +302,8 @@ sal_uInt32 CPInfo::toBlop(sal_uInt8* buffer)
             buff += writeBYTE(buff, (sal_uInt8) m_value.aConst.aBool);
             break;
         case CP_TAG_CONST_BYTE:
-            buff += writeBYTE(buff, m_value.aConst.aByte);
+            buff += writeBYTE(
+                buff, static_cast< sal_uInt8 >(m_value.aConst.aByte));
             break;
         case CP_TAG_CONST_INT16:
             buff += writeINT16(buff, m_value.aConst.aShort);
diff --git a/registry/source/regimpl.cxx b/registry/source/regimpl.cxx
index e82789b..401fb98 100644
--- a/registry/source/regimpl.cxx
+++ b/registry/source/regimpl.cxx
@@ -242,9 +242,7 @@ void dumpType(typereg::Reader const & reader, rtl::OString const & indent) {
                 break;
 
             case RT_TYPE_BYTE:
-                printf(
-                    "byte 0x%02X",
-                    static_cast< unsigned int >(value.m_value.aByte));
+                printf("byte %d", static_cast< int >(value.m_value.aByte));
                 break;
 
             case RT_TYPE_INT16:


More information about the Libreoffice-commits mailing list