hwpfilter/source/hiodev.cxx |   24 +++++++++++-------------
 hwpfilter/source/hiodev.h   |    6 +++---
 2 files changed, 14 insertions(+), 16 deletions(-)

New commits:
commit bc1bf9a4fd7f75e6b7fec997d147f0f90eb8e639
Author: Caolán McNamara <caol...@redhat.com>
Date:   Fri Jan 26 11:51:43 2018 +0000

    ofz: check state in readblock
    
    and change state to a bool and reuse it more
    
    Change-Id: Iaa46004b144836431dd386a68a8ab688fd1477f2
    Reviewed-on: https://gerrit.libreoffice.org/48689
    Tested-by: Jenkins <c...@libreoffice.org>
    Reviewed-by: Michael Stahl <mst...@redhat.com>

diff --git a/hwpfilter/source/hiodev.cxx b/hwpfilter/source/hiodev.cxx
index 4d9fdce9196c..0d299e734d9b 100644
--- a/hwpfilter/source/hiodev.cxx
+++ b/hwpfilter/source/hiodev.cxx
@@ -142,13 +142,11 @@ void HStreamIODev::flush()
         gz_flush(_gzfp, Z_FINISH);
 }
 
-
-int HStreamIODev::state() const
+bool HStreamIODev::state() const
 {
-    return 0;
+    return false;
 }
 
-
 /* zlib 관련 부분 */
 bool HStreamIODev::setCompressed(bool flag)
 {
@@ -288,16 +286,14 @@ void HMemIODev::flush()
 {
 }
 
-
-int HMemIODev::state() const
+bool HMemIODev::state() const
 {
     if (pos <= length)
-        return 0;
+        return false;
     else
-        return -1;
+        return true;
 }
 
-
 bool HMemIODev::setCompressed(bool )
 {
     return false;
@@ -306,7 +302,7 @@ bool HMemIODev::setCompressed(bool )
 bool HMemIODev::read1b(unsigned char &out)
 {
     ++pos;
-    if (pos <= length)
+    if (!state())
     {
         out = ptr[pos - 1];
         return true;
@@ -326,7 +322,7 @@ bool HMemIODev::read1b(char &out)
 bool HMemIODev::read2b(unsigned short &out)
 {
     pos += 2;
-    if (pos <= length)
+    if (!state())
     {
          out = ptr[pos - 1] << 8 | ptr[pos - 2];
          return true;
@@ -337,7 +333,7 @@ bool HMemIODev::read2b(unsigned short &out)
 bool HMemIODev::read4b(unsigned int &out)
 {
     pos += 4;
-    if (pos <= length)
+    if (!state())
     {
         out = static_cast<unsigned int>(ptr[pos - 1] << 24 | ptr[pos - 2] << 
16 |
                     ptr[pos - 3] << 8 | ptr[pos - 4]);
@@ -357,6 +353,8 @@ bool HMemIODev::read4b(int &out)
 
 size_t HMemIODev::readBlock(void *p, size_t size)
 {
+    if (state())
+        return 0;
     if (length < pos + size)
         size = length - pos;
     memcpy(p, ptr + pos, size);
@@ -366,7 +364,7 @@ size_t HMemIODev::readBlock(void *p, size_t size)
 
 size_t HMemIODev::skipBlock(size_t size)
 {
-    if (length < pos + size)
+    if (state() || length < pos + size)
         return 0;
     pos += size;
     return size;
diff --git a/hwpfilter/source/hiodev.h b/hwpfilter/source/hiodev.h
index af49703c3482..e47bd8b2d0f0 100644
--- a/hwpfilter/source/hiodev.h
+++ b/hwpfilter/source/hiodev.h
@@ -47,7 +47,7 @@ class DLLEXPORT HIODev
 
         virtual bool open() = 0;
         virtual void flush() = 0;
-        virtual int  state() const = 0;
+        virtual bool state() const = 0;
 /* gzip routine wrapper */
         virtual bool setCompressed( bool ) = 0;
 
@@ -92,7 +92,7 @@ class HStreamIODev final: public HIODev
 /**
  * Not implemented.
  */
-        virtual int  state() const override;
+        virtual bool state() const override;
 /**
  * Set whether the stream is compressed or not
  */
@@ -144,7 +144,7 @@ class HMemIODev final: public HIODev
 
         virtual bool open() override;
         virtual void flush() override;
-        virtual int  state() const override;
+        virtual bool state() const override;
 /* gzip routine wrapper */
         virtual bool setCompressed( bool ) override;
         using HIODev::read1b;
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to