glib/poppler-structure-element.cc | 44 +++++++++++++++++++------------------- poppler/StructElement.h | 8 +++--- utils/pdfinfo.cc | 3 -- 3 files changed, 27 insertions(+), 28 deletions(-)
New commits: commit b0571a9e87f05785a9643b38768c711f0064b763 Author: Albert Astals Cid <aa...@kde.org> Date: Sat Oct 30 00:58:27 2021 +0200 Remove two mutables that aren't really needed diff --git a/glib/poppler-structure-element.cc b/glib/poppler-structure-element.cc index 29d3e5ca..0cf7b673 100644 --- a/glib/poppler-structure-element.cc +++ b/glib/poppler-structure-element.cc @@ -283,7 +283,7 @@ ENUM_VALUES(PopplerStructureTableScope, Scope) { { "Row", POPPLER_STRUCTURE_TABL #undef ENUM_VALUES template<typename EnumType> -static EnumType name_to_enum(Object *name_value) +static EnumType name_to_enum(const Object *name_value) { /* * Non-NULL names must always be valid because Poppler @@ -306,7 +306,7 @@ static EnumType attr_to_enum(PopplerStructureElement *poppler_structure_element) return name_to_enum<EnumType>((attr != nullptr) ? attr->getValue() : Attribute::getDefaultValue(EnumNameValue<EnumType>::attribute_type)); } -static inline Object *attr_value_or_default(PopplerStructureElement *poppler_structure_element, Attribute::Type attribute_type) +static inline const Object *attr_value_or_default(PopplerStructureElement *poppler_structure_element, Attribute::Type attribute_type) { const Attribute *attr = poppler_structure_element->elem->findAttribute(attribute_type, true); return attr ? attr->getValue() : Attribute::getDefaultValue(attribute_type); @@ -1042,7 +1042,7 @@ PopplerStructureWritingMode poppler_structure_element_get_writing_mode(PopplerSt return attr_to_enum<PopplerStructureWritingMode>(poppler_structure_element); } -static void convert_border_style(Object *object, PopplerStructureBorderStyle *values) +static void convert_border_style(const Object *object, PopplerStructureBorderStyle *values) { g_assert(object != nullptr); g_assert(values != nullptr); @@ -1078,7 +1078,7 @@ void poppler_structure_element_get_border_style(PopplerStructureElement *poppler convert_border_style(attr_value_or_default(poppler_structure_element, Attribute::BorderStyle), border_styles); } -static inline void convert_doubles_array(Object *object, gdouble **values, guint *n_values) +static inline void convert_doubles_array(const Object *object, gdouble **values, guint *n_values) { g_assert(object->isArray()); g_assert(n_values != nullptr); @@ -1094,7 +1094,7 @@ static inline void convert_doubles_array(Object *object, gdouble **values, guint values = &doubles; } -static inline void convert_color(Object *object, PopplerColor *color) +static inline void convert_color(const Object *object, PopplerColor *color) { g_assert(color != nullptr); g_assert(object->isArray() && object->arrayGetLength() != 3); @@ -1123,7 +1123,7 @@ gboolean poppler_structure_element_get_color(PopplerStructureElement *poppler_st g_return_val_if_fail(POPPLER_IS_STRUCTURE_ELEMENT(poppler_structure_element), FALSE); g_return_val_if_fail(color != nullptr, FALSE); - Object *value = attr_value_or_default(poppler_structure_element, Attribute::Color); + const Object *value = attr_value_or_default(poppler_structure_element, Attribute::Color); if (value == nullptr) return FALSE; @@ -1149,7 +1149,7 @@ gboolean poppler_structure_element_get_background_color(PopplerStructureElement g_return_val_if_fail(POPPLER_IS_STRUCTURE_ELEMENT(poppler_structure_element), FALSE); g_return_val_if_fail(color != nullptr, FALSE); - Object *value = attr_value_or_default(poppler_structure_element, Attribute::BackgroundColor); + const Object *value = attr_value_or_default(poppler_structure_element, Attribute::BackgroundColor); if (value == nullptr) return FALSE; @@ -1180,7 +1180,7 @@ gboolean poppler_structure_element_get_border_color(PopplerStructureElement *pop g_return_val_if_fail(POPPLER_IS_STRUCTURE_ELEMENT(poppler_structure_element), FALSE); g_return_val_if_fail(colors != nullptr, FALSE); - Object *value = attr_value_or_default(poppler_structure_element, Attribute::BorderColor); + const Object *value = attr_value_or_default(poppler_structure_element, Attribute::BorderColor); if (value == nullptr) return FALSE; @@ -1201,7 +1201,7 @@ gboolean poppler_structure_element_get_border_color(PopplerStructureElement *pop return TRUE; } -static inline void convert_double_or_4_doubles(Object *object, gdouble *value) +static inline void convert_double_or_4_doubles(const Object *object, gdouble *value) { g_assert(object != nullptr); @@ -1237,7 +1237,7 @@ gboolean poppler_structure_element_get_border_thickness(PopplerStructureElement g_return_val_if_fail(POPPLER_IS_STRUCTURE_ELEMENT(poppler_structure_element), FALSE); g_return_val_if_fail(border_thicknesses != nullptr, FALSE); - Object *value = attr_value_or_default(poppler_structure_element, Attribute::BorderThickness); + const Object *value = attr_value_or_default(poppler_structure_element, Attribute::BorderThickness); if (value == nullptr) return FALSE; @@ -1381,7 +1381,7 @@ gboolean poppler_structure_element_get_bounding_box(PopplerStructureElement *pop g_return_val_if_fail(poppler_structure_element_is_block(poppler_structure_element), FALSE); g_return_val_if_fail(bounding_box != nullptr, FALSE); - Object *value = attr_value_or_default(poppler_structure_element, Attribute::BBox); + const Object *value = attr_value_or_default(poppler_structure_element, Attribute::BBox); if (value == nullptr) return FALSE; @@ -1411,7 +1411,7 @@ gboolean poppler_structure_element_get_bounding_box(PopplerStructureElement *pop gdouble poppler_structure_element_get_width(PopplerStructureElement *poppler_structure_element) { g_return_val_if_fail(poppler_structure_element_is_block(poppler_structure_element), NAN); - Object *value = attr_value_or_default(poppler_structure_element, Attribute::Width); + const Object *value = attr_value_or_default(poppler_structure_element, Attribute::Width); return value->isName("Auto") ? -1.0 : value->getNum(); } @@ -1430,7 +1430,7 @@ gdouble poppler_structure_element_get_width(PopplerStructureElement *poppler_str gdouble poppler_structure_element_get_height(PopplerStructureElement *poppler_structure_element) { g_return_val_if_fail(poppler_structure_element_is_block(poppler_structure_element), NAN); - Object *value = attr_value_or_default(poppler_structure_element, Attribute::Height); + const Object *value = attr_value_or_default(poppler_structure_element, Attribute::Height); return value->isName("Auto") ? -1.0 : value->getNum(); } @@ -1542,7 +1542,7 @@ gdouble poppler_structure_element_get_baseline_shift(PopplerStructureElement *po gdouble poppler_structure_element_get_line_height(PopplerStructureElement *poppler_structure_element) { g_return_val_if_fail(poppler_structure_element_is_inline(poppler_structure_element), NAN); - Object *value = attr_value_or_default(poppler_structure_element, Attribute::LineHeight); + const Object *value = attr_value_or_default(poppler_structure_element, Attribute::LineHeight); return (value->isName("Normal") || value->isName("Auto")) ? -1.0 : value->getNum(); } @@ -1566,7 +1566,7 @@ gboolean poppler_structure_element_get_text_decoration_color(PopplerStructureEle g_return_val_if_fail(poppler_structure_element_is_inline(poppler_structure_element), FALSE); g_return_val_if_fail(color != nullptr, FALSE); - Object *value = attr_value_or_default(poppler_structure_element, Attribute::TextDecorationColor); + const Object *value = attr_value_or_default(poppler_structure_element, Attribute::TextDecorationColor); if (value == nullptr) return FALSE; @@ -1591,7 +1591,7 @@ gdouble poppler_structure_element_get_text_decoration_thickness(PopplerStructure { g_return_val_if_fail(poppler_structure_element_is_inline(poppler_structure_element), NAN); - Object *value = attr_value_or_default(poppler_structure_element, Attribute::TextDecorationThickness); + const Object *value = attr_value_or_default(poppler_structure_element, Attribute::TextDecorationThickness); return (value == nullptr) ? NAN : value->getNum(); } @@ -1711,7 +1711,7 @@ gdouble *poppler_structure_element_get_column_gaps(PopplerStructureElement *popp g_return_val_if_fail(poppler_structure_element_is_grouping(poppler_structure_element), NULL); g_return_val_if_fail(n_values != nullptr, NULL); - Object *value = attr_value_or_default(poppler_structure_element, Attribute::ColumnGap); + const Object *value = attr_value_or_default(poppler_structure_element, Attribute::ColumnGap); if (value == nullptr) { *n_values = static_cast<guint>(-1); return nullptr; @@ -1743,7 +1743,7 @@ gdouble *poppler_structure_element_get_column_widths(PopplerStructureElement *po g_return_val_if_fail(poppler_structure_element_is_grouping(poppler_structure_element), NULL); g_return_val_if_fail(n_values != nullptr, NULL); - Object *value = attr_value_or_default(poppler_structure_element, Attribute::ColumnWidths); + const Object *value = attr_value_or_default(poppler_structure_element, Attribute::ColumnWidths); if (value == nullptr) return nullptr; @@ -1791,7 +1791,7 @@ PopplerStructureFormRole poppler_structure_element_get_form_role(PopplerStructur /* * The Role attribute can actually be undefined. */ - Object *value = attr_value_or_default(poppler_structure_element, Attribute::Role); + const Object *value = attr_value_or_default(poppler_structure_element, Attribute::Role); if (value == nullptr) return POPPLER_STRUCTURE_FORM_ROLE_UNDEFINED; @@ -1837,7 +1837,7 @@ gchar *poppler_structure_element_get_form_description(PopplerStructureElement *p { g_return_val_if_fail(poppler_structure_element_get_kind(poppler_structure_element) == POPPLER_STRUCTURE_ELEMENT_FORM, NULL); - Object *value = attr_value_or_default(poppler_structure_element, Attribute::Desc); + const Object *value = attr_value_or_default(poppler_structure_element, Attribute::Desc); if (value == nullptr) return nullptr; if (value->isString()) @@ -1904,7 +1904,7 @@ gchar **poppler_structure_element_get_table_headers(PopplerStructureElement *pop { g_return_val_if_fail(poppler_structure_element_get_kind(poppler_structure_element) == POPPLER_STRUCTURE_ELEMENT_TABLE, NULL); - Object *value = attr_value_or_default(poppler_structure_element, Attribute::Headers); + const Object *value = attr_value_or_default(poppler_structure_element, Attribute::Headers); if (value == nullptr) return nullptr; @@ -1966,7 +1966,7 @@ gchar *poppler_structure_element_get_table_summary(PopplerStructureElement *popp { g_return_val_if_fail(POPPLER_IS_STRUCTURE_ELEMENT(poppler_structure_element), NULL); - Object *value = attr_value_or_default(poppler_structure_element, Attribute::Summary); + const Object *value = attr_value_or_default(poppler_structure_element, Attribute::Summary); if (value == nullptr) return nullptr; if (value->isString()) diff --git a/poppler/StructElement.h b/poppler/StructElement.h index a4f0495d..38310c6a 100644 --- a/poppler/StructElement.h +++ b/poppler/StructElement.h @@ -125,7 +125,7 @@ public: Owner getOwner() const { return owner; } const char *getTypeName() const; const char *getOwnerName() const; - Object *getValue() const { return &value; } + const Object *getValue() const { return &value; } static Object *getDefaultValue(Type type); // The caller gets the ownership of the return GooString and is responsible of deleting it @@ -150,8 +150,8 @@ private: Type type; Owner owner; unsigned int revision; - mutable GooString name; - mutable Object value; + GooString name; + Object value; bool hidden; GooString *formatted; commit 4b2d2d0232098f57ae7e4504a4fd9397bf74f768 Author: Albert Astals Cid <aa...@kde.org> Date: Sat Oct 30 00:53:34 2021 +0200 Make function return std::unique if caller owns the pointer diff --git a/poppler/StructElement.h b/poppler/StructElement.h index 66311b08..a4f0495d 100644 --- a/poppler/StructElement.h +++ b/poppler/StructElement.h @@ -129,7 +129,7 @@ public: static Object *getDefaultValue(Type type); // The caller gets the ownership of the return GooString and is responsible of deleting it - GooString *getName() const { return type == UserProperty ? name.copy() : new GooString(getTypeName()); } + std::unique_ptr<GooString> getName() const { return std::make_unique<GooString>(type == UserProperty ? name.c_str() : getTypeName()); } // The revision is optional, and defaults to zero. unsigned int getRevision() const { return revision; } diff --git a/utils/pdfinfo.cc b/utils/pdfinfo.cc index 8e9e26fd..37cbbf22 100644 --- a/utils/pdfinfo.cc +++ b/utils/pdfinfo.cc @@ -232,9 +232,8 @@ static void printAttribute(const Attribute *attribute, unsigned indent) printIndent(indent); printf(" /%s ", attribute->getTypeName()); if (attribute->getType() == Attribute::UserProperty) { - GooString *name = attribute->getName(); + std::unique_ptr<GooString> name = attribute->getName(); printf("(%s) ", name->c_str()); - delete name; } attribute->getValue()->print(stdout); if (attribute->getFormattedValue()) {