mirror of
https://github.com/qpdf/qpdf.git
synced 2024-11-10 23:20:58 +00:00
Tune parsing of dictionaries in QPDFParser::parse
Use move semantics for dictionary creation.
This commit is contained in:
parent
846504129f
commit
d67a54ae93
@ -404,7 +404,7 @@ QPDFParser::parse(bool& empty, bool content_stream)
|
||||
QPDFObjectHandle::newString(frame.contents_string);
|
||||
dict["/Contents"].setParsedOffset(frame.contents_offset);
|
||||
}
|
||||
object = QPDF_Dictionary::create(dict);
|
||||
object = QPDF_Dictionary::create(std::move(dict));
|
||||
setDescription(object, offset - 2);
|
||||
// The `offset` points to the next of "<<". Set the rewind
|
||||
// offset to point to the beginning of "<<". This has been
|
||||
|
@ -9,12 +9,25 @@ QPDF_Dictionary::QPDF_Dictionary(
|
||||
{
|
||||
}
|
||||
|
||||
QPDF_Dictionary::QPDF_Dictionary(
|
||||
std::map<std::string, QPDFObjectHandle>&& items) :
|
||||
QPDFValue(::ot_dictionary, "dictionary"),
|
||||
items(items)
|
||||
{
|
||||
}
|
||||
|
||||
std::shared_ptr<QPDFObject>
|
||||
QPDF_Dictionary::create(std::map<std::string, QPDFObjectHandle> const& items)
|
||||
{
|
||||
return do_create(new QPDF_Dictionary(items));
|
||||
}
|
||||
|
||||
std::shared_ptr<QPDFObject>
|
||||
QPDF_Dictionary::create(std::map<std::string, QPDFObjectHandle>&& items)
|
||||
{
|
||||
return do_create(new QPDF_Dictionary(items));
|
||||
}
|
||||
|
||||
std::shared_ptr<QPDFObject>
|
||||
QPDF_Dictionary::copy(bool shallow)
|
||||
{
|
||||
|
@ -14,6 +14,8 @@ class QPDF_Dictionary: public QPDFValue
|
||||
virtual ~QPDF_Dictionary() = default;
|
||||
static std::shared_ptr<QPDFObject>
|
||||
create(std::map<std::string, QPDFObjectHandle> const& items);
|
||||
static std::shared_ptr<QPDFObject>
|
||||
create(std::map<std::string, QPDFObjectHandle>&& items);
|
||||
virtual std::shared_ptr<QPDFObject> copy(bool shallow = false);
|
||||
virtual std::string unparse();
|
||||
virtual JSON getJSON(int json_version);
|
||||
@ -35,6 +37,7 @@ class QPDF_Dictionary: public QPDFValue
|
||||
|
||||
private:
|
||||
QPDF_Dictionary(std::map<std::string, QPDFObjectHandle> const& items);
|
||||
QPDF_Dictionary(std::map<std::string, QPDFObjectHandle>&& items);
|
||||
std::map<std::string, QPDFObjectHandle> items;
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user