Last Comment Bug 700802 - Make JSLinearString::ensureLinear (mutatis mutandis for JSFlatString and other subtypes, and for is* and as* methods) a compile error
: Make JSLinearString::ensureLinear (mutatis mutandis for JSFlatString and othe...
Status: RESOLVED FIXED
:
Product: Core
Classification: Components
Component: JavaScript Engine (show other bugs)
: Trunk
: All All
: -- normal (vote)
: mozilla11
Assigned To: Jeff Walden [:Waldo] (remove +bmo to email)
:
Mentors:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2011-11-08 14:12 PST by Jeff Walden [:Waldo] (remove +bmo to email)
Modified: 2011-11-09 05:33 PST (History)
3 users (show)
See Also:
Crash Signature:
(edit)
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---


Attachments
Patch (6.30 KB, patch)
2011-11-08 14:12 PST, Jeff Walden [:Waldo] (remove +bmo to email)
luke: review+
Details | Diff | Splinter Review

Description Jeff Walden [:Waldo] (remove +bmo to email) 2011-11-08 14:12:07 PST
Created attachment 573001 [details] [diff] [review]
Patch

It's perfectly legal to call ensureLinear on a linear string right now.  It's also completely pointless.  We can make it a compile error so that this can't be done.  This sort of mistake is most likely to bite changes that improve typing of a class member (say, from JSString to JSLinearString), although I could imagine it happening if someone suffered a brief memory lapse when writing some other patch.
Comment 1 Jeff Walden [:Waldo] (remove +bmo to email) 2011-11-08 19:38:08 PST
https://hg.mozilla.org/integration/mozilla-inbound/rev/85f790b1de47

Earlier this year C++11 had a declaration modifier, "new", which could be used to require that a declarator in a class hide an identically-typed declarator in a superclass.  It got taken out because the ISO people were running out of places to shoehorn it, for non-method declarator syntax.  Le sigh; that would have been perfect for these uses.

http://stackoverflow.com/questions/5530022/override-non-virtual-functions-in-c-2011

Oh well, this will likely work well enough.
Comment 2 Marco Bonardo [::mak] 2011-11-09 05:33:17 PST
https://hg.mozilla.org/mozilla-central/rev/85f790b1de47

Note You need to log in before you can comment on or make changes to this bug.