Make CFXJSE_Engine::ResolveResult a move-only type Introduce the implicitly deleted move operators, and explicitly delete the the copy operators. Avoids a vector copy in a few existing places, like when assigning/extracting a value to/from an optional<ResolveResult>. Change-Id: I8517bd74f8c1a91aed615f3bcfaf98f13377750f Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/124451 Commit-Queue: Tom Sepez <tsepez@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org> Reviewed-by: Tom Sepez <tsepez@google.com>
diff --git a/fxjs/xfa/cfxjse_engine.cpp b/fxjs/xfa/cfxjse_engine.cpp index b265cac..2eb8e8d 100644 --- a/fxjs/xfa/cfxjse_engine.cpp +++ b/fxjs/xfa/cfxjse_engine.cpp
@@ -79,11 +79,11 @@ CFXJSE_Engine::ResolveResult::ResolveResult() = default; -CFXJSE_Engine::ResolveResult::ResolveResult(const ResolveResult& that) = +CFXJSE_Engine::ResolveResult::ResolveResult(ResolveResult&& that) noexcept = default; CFXJSE_Engine::ResolveResult& CFXJSE_Engine::ResolveResult::operator=( - const ResolveResult& that) = default; + ResolveResult&& that) noexcept = default; CFXJSE_Engine::ResolveResult::~ResolveResult() = default;
diff --git a/fxjs/xfa/cfxjse_engine.h b/fxjs/xfa/cfxjse_engine.h index 487bf23..5890483 100644 --- a/fxjs/xfa/cfxjse_engine.h +++ b/fxjs/xfa/cfxjse_engine.h
@@ -62,8 +62,13 @@ }; ResolveResult(); - ResolveResult(const ResolveResult& that); - ResolveResult& operator=(const ResolveResult& that); + ResolveResult(ResolveResult&& that) noexcept; + ResolveResult& operator=(ResolveResult&& that) noexcept; + + // Move-only type. + ResolveResult(const ResolveResult& that) = delete; + ResolveResult& operator=(const ResolveResult& that) = delete; + ~ResolveResult(); Type type = Type::kNodes;