mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-03-09 04:25:38 +00:00
Bug 790436 - Add GuardObject annotation to JS::Root; r=sfink
It is invalid to use JS::Root as a temporary, since destruction order is not specified in this case. --HG-- extra : rebase_source : 1ce35c0c938fd2f7a0998bc1b9cddff222c016fd
This commit is contained in:
parent
9526e122c1
commit
4d5f06d2bb
@ -374,14 +374,52 @@ class Rooted : public RootedBase<T>
|
||||
}
|
||||
|
||||
public:
|
||||
Rooted() : ptr(RootMethods<T>::initial()) { init(JS::TlsRuntime); }
|
||||
Rooted(const T &initial) : ptr(initial) { init(JS::TlsRuntime); }
|
||||
Rooted(MOZ_GUARD_OBJECT_NOTIFIER_ONLY_PARAM)
|
||||
: ptr(RootMethods<T>::initial())
|
||||
{
|
||||
MOZ_GUARD_OBJECT_NOTIFIER_INIT;
|
||||
init(JS::TlsRuntime);
|
||||
}
|
||||
|
||||
Rooted(JSRuntime *rt) : ptr(RootMethods<T>::initial()) { init(rt); }
|
||||
Rooted(JSRuntime *rt, T initial) : ptr(initial) { init(rt); }
|
||||
Rooted(const T &initial
|
||||
MOZ_GUARD_OBJECT_NOTIFIER_PARAM)
|
||||
: ptr(initial)
|
||||
{
|
||||
MOZ_GUARD_OBJECT_NOTIFIER_INIT;
|
||||
init(JS::TlsRuntime);
|
||||
}
|
||||
|
||||
Rooted(JSContext *cx) : ptr(RootMethods<T>::initial()) { init(cx); }
|
||||
Rooted(JSContext *cx, T initial) : ptr(initial) { init(cx); }
|
||||
Rooted(JSRuntime *rt
|
||||
MOZ_GUARD_OBJECT_NOTIFIER_PARAM)
|
||||
: ptr(RootMethods<T>::initial())
|
||||
{
|
||||
MOZ_GUARD_OBJECT_NOTIFIER_INIT;
|
||||
init(rt);
|
||||
}
|
||||
|
||||
Rooted(JSRuntime *rt, T initial
|
||||
MOZ_GUARD_OBJECT_NOTIFIER_PARAM)
|
||||
: ptr(initial)
|
||||
{
|
||||
MOZ_GUARD_OBJECT_NOTIFIER_INIT;
|
||||
init(rt);
|
||||
}
|
||||
|
||||
Rooted(JSContext *cx
|
||||
MOZ_GUARD_OBJECT_NOTIFIER_PARAM)
|
||||
: ptr(RootMethods<T>::initial())
|
||||
{
|
||||
MOZ_GUARD_OBJECT_NOTIFIER_INIT;
|
||||
init(cx);
|
||||
}
|
||||
|
||||
Rooted(JSContext *cx, T initial
|
||||
MOZ_GUARD_OBJECT_NOTIFIER_PARAM)
|
||||
: ptr(initial)
|
||||
{
|
||||
MOZ_GUARD_OBJECT_NOTIFIER_INIT;
|
||||
init(cx);
|
||||
}
|
||||
|
||||
~Rooted()
|
||||
{
|
||||
@ -420,6 +458,7 @@ class Rooted : public RootedBase<T>
|
||||
Rooted<T> **stack, *prev;
|
||||
#endif
|
||||
T ptr;
|
||||
MOZ_DECL_USE_GUARD_OBJECT_NOTIFIER
|
||||
|
||||
Rooted(const Rooted &) MOZ_DELETE;
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user