[poppler] poppler/Object.h

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Sat Sep 8 17:37:29 UTC 2018


 poppler/Object.h |    8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

New commits:
commit 3af4c151cf09e1e98d311e8308060eb832bdd7d2
Author: Adam Reichold <adam.reichold at t-online.de>
Date:   Sun Sep 2 13:48:17 2018 +0200

    Make Object::takeString leave a dead object instead of a null string and hence assert non-null strings during object creation.

diff --git a/poppler/Object.h b/poppler/Object.h
index 5d11aec9..58d0f2e5 100644
--- a/poppler/Object.h
+++ b/poppler/Object.h
@@ -155,7 +155,7 @@ public:
   explicit Object(double realA)
     { constructObj(objReal); real = realA; }
   explicit Object(GooString *stringA)
-    { constructObj(objString); string = stringA; }
+    { assert(stringA); constructObj(objString); string = stringA; }
   Object(ObjType typeA, const char *stringA)
     { assert(typeA == objName || typeA == objCmd); assert(stringA); constructObj(typeA); cString = copyString(stringA); }
   explicit Object(long long int64gA)
@@ -231,10 +231,8 @@ public:
     return type == objInt ? (double)intg : type == objInt64 ? (double)int64g : real;
   }
   const GooString *getString() const { OBJECT_TYPE_CHECK(objString); return string; }
-  // After takeString() the only method that should be called for the object is free()
-  // because the object it's not expected to have a NULL string.
-  GooString *takeString() {
-    OBJECT_TYPE_CHECK(objString); GooString *s = string; string = nullptr; return s; }
+  // After takeString() the only method that should be called for the object is free().
+  GooString *takeString() { OBJECT_TYPE_CHECK(objString); type = objDead; return string; }
   const char *getName() const { OBJECT_TYPE_CHECK(objName); return cString; }
   Array *getArray() const { OBJECT_TYPE_CHECK(objArray); return array; }
   Dict *getDict() const { OBJECT_TYPE_CHECK(objDict); return dict; }


More information about the poppler mailing list