Bug 214815

Summary: DisallowVMEntryImpl should not have explicitly-declared copy constructor
Product: WebKit Reporter: Joonghun Park <jh718.park>
Component: JavaScriptCoreAssignee: Joonghun Park <jh718.park>
Status: RESOLVED DUPLICATE    
Severity: Normal CC: darin, don.olmstead, ews-watchlist, keith_miller, mark.lam, mcatanzaro, msaboff, saam, tzagallo
Priority: P2    
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch mark.lam: review-

Description Joonghun Park 2020-07-26 20:24:19 PDT
In file included from DerivedSources/ForwardingHeaders/wtf/Seconds.h:29,
                 from DerivedSources/ForwardingHeaders/wtf/WallTime.h:29,
                 from DerivedSources/ForwardingHeaders/wtf/ThreadingPrimitives.h:37,
                 from DerivedSources/ForwardingHeaders/wtf/MainThread.h:35,
                 from DerivedSources/ForwardingHeaders/wtf/NeverDestroyed.h:31,
                 from DerivedSources/ForwardingHeaders/wtf/text/AtomString.h:24,
                 from DerivedSources/ForwardingHeaders/wtf/text/WTFString.h:690,
                 from ../../Source/WebCore/dom/Exception.h:30,
                 from ../../Source/WebCore/dom/ExceptionOr.h:29,
                 from ../../Source/WebCore/bindings/js/JSDOMBinding.h:28,
                 from ../../Source/WebCore/bindings/js/JSDOMMapLike.h:28,
                 from ../../Source/WebCore/bindings/js/JSDOMMapLike.cpp:27,
                 from DerivedSources/WebCore/unified-sources/UnifiedSource-68aea4ac-6.cpp:1:
DerivedSources/ForwardingHeaders/wtf/Optional.h: In instantiation of ‘WTF::Optional< <template-parameter-1-1> >& WTF::Optional< <template-parameter-1-1> >::operator=(const WTF::Optional< <template-parameter-1-1> >&) [with T = JSC::DisallowVMEntryImpl<JSC::VM>]’:
DerivedSources/ForwardingHeaders/JavaScriptCore/PropertySlot.h:87:7:   required from here
DerivedSources/ForwardingHeaders/wtf/Optional.h:465:84: warning: implicitly-declared ‘constexpr JSC::DisallowVMEntryImpl<JSC::VM>& JSC::DisallowVMEntryImpl<JSC::VM>::operator=(const JSC::DisallowVMEntryImpl<JSC::VM>&)’ is deprecated [-Wdeprecated-copy]
  465 |     else if (initialized() == true  && rhs.initialized() == true)  contained_val() = *rhs;
In file included from DerivedSources/ForwardingHeaders/JavaScriptCore/VM.h:38,
                 from DerivedSources/ForwardingHeaders/JavaScriptCore/Identifier.h:24,
                 from DerivedSources/WebCore/JSDOMBindingInternalsBuiltins.h:34,
                 from DerivedSources/WebCore/WebCoreJSBuiltinInternals.h:39,
                 from ../../Source/WebCore/bindings/js/JSDOMGlobalObject.h:29,
                 from ../../Source/WebCore/bindings/js/DOMWrapperWorld.h:24,
                 from ../../Source/WebCore/bindings/js/JSDOMWrapperCache.h:26,
                 from ../../Source/WebCore/bindings/js/JSDOMBinding.h:29,
                 from ../../Source/WebCore/bindings/js/JSDOMMapLike.h:28,
                 from ../../Source/WebCore/bindings/js/JSDOMMapLike.cpp:27,
                 from DerivedSources/WebCore/unified-sources/UnifiedSource-68aea4ac-6.cpp:1:
DerivedSources/ForwardingHeaders/JavaScriptCore/DisallowVMEntry.h:46:5: note: because ‘JSC::DisallowVMEntryImpl<JSC::VM>’ has user-provided ‘JSC::DisallowVMEntryImpl<VMType>::DisallowVMEntryImpl(const JSC::DisallowVMEntryImpl<VMType>&) [with VMType = JSC::VM]’
   46 |     DisallowVMEntryImpl(const DisallowVMEntryImpl& other)
      |     ^~~~~~~~~~~~~~~~~~~
Comment 1 Joonghun Park 2020-07-26 20:28:22 PDT
Created attachment 405259 [details]
Patch
Comment 2 Mark Lam 2020-07-26 21:21:37 PDT
Comment on attachment 405259 [details]
Patch

The copy constructor is needed by WebCore.
Comment 3 Mark Lam 2020-07-26 21:23:17 PDT
See also https://bugs.webkit.org/show_bug.cgi?id=214809.  I'm already working on the proper fix there.

*** This bug has been marked as a duplicate of bug 214809 ***
Comment 4 Joonghun Park 2020-07-26 21:48:32 PDT
(In reply to Mark Lam from comment #2)
> Comment on attachment 405259 [details]
> Patch
> 
> The copy constructor is needed by WebCore.

I see. Thank you for your review.