DescriptionPrevent calls to ReturnValue::Set with pointer-valued types.
Currently, this code will compile:
SomePointer* p = ...;
ReturnValue r = ...;
r.Set(p);
What happens is that ReturnValue::Set has no pointer-ish overloads, but
a bool one, and hence C++ will convert the pointer to a bool and use
the Set(bool) overload. In other words, the example above is equivalent
to: r.Set(p ? true : false); Which probably isn't what the author had
in mind. This change adds a Set(void*) overload whose body forces a
compile error, to prevent this from happening inadvertently. The only
use of this indeed turned out to be an error.
(Said error was fixed/removed in crrev.com/267393002.)
BUG=
R=dcarney@chromium.org
Committed: https://code.google.com/p/v8/source/detail?r=21217
Patch Set 1 #
Messages
Total messages: 4 (0 generated)
|