Make all inheritance from angle::NonCopyable private so the compiler
complains about this (admittedly unlikely) code:
class Foo: angle::NonCopyable {
virtual ~Foo() { ... }
};
angle::NonCopyable *p = new Foo;
delete p;
In the above code ~Foo() is not called, only ~NonCopyable(), because the
latter is not virtual. Making it virtual would add overhead to all derived
classes which don't already have a virtual method.
Also tighten access in NonCopyable, because we can.
BUG=angleproject:2026
Change-Id: Id0dc4d959cfb7bb82cf49382118129abb1d3a4f0
Reviewed-on: https://chromium-review.googlesource.com/495352Reviewed-by:
Jamie Madill <jmadill@chromium.org>
Reviewed-by:
Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| 64bit-tokenizer-safety.patch | Loading commit data... | |
| DiagnosticsBase.cpp | Loading commit data... | |
| DiagnosticsBase.h | Loading commit data... | |
| DirectiveHandlerBase.cpp | Loading commit data... | |
| DirectiveHandlerBase.h | Loading commit data... | |
| DirectiveParser.cpp | Loading commit data... | |
| DirectiveParser.h | Loading commit data... | |
| ExpressionParser.cpp | Loading commit data... | |
| ExpressionParser.h | Loading commit data... | |
| ExpressionParser.y | Loading commit data... | |
| Input.cpp | Loading commit data... | |
| Input.h | Loading commit data... | |
| Lexer.cpp | Loading commit data... | |
| Lexer.h | Loading commit data... | |
| Macro.cpp | Loading commit data... | |
| Macro.h | Loading commit data... | |
| MacroExpander.cpp | Loading commit data... | |
| MacroExpander.h | Loading commit data... | |
| Preprocessor.cpp | Loading commit data... | |
| Preprocessor.h | Loading commit data... | |
| SourceLocation.h | Loading commit data... | |
| Token.cpp | Loading commit data... | |
| Token.h | Loading commit data... | |
| Tokenizer.cpp | Loading commit data... | |
| Tokenizer.h | Loading commit data... | |
| Tokenizer.l | Loading commit data... | |
| generate_parser.sh | Loading commit data... | |
| numeric_lex.h | Loading commit data... |