This is an archived page. It's not actively maintained.


Obsolete since JSAPI 13
This feature is obsolete. Although it may still work in some browsers, its use is discouraged since it could be removed at any time. Try to avoid using it.

Increment or decrement the reference count of a JSPrincipals object.


JSPRINCIPALS_HOLD(cx, principals)

JSPRINCIPALS_DROP(cx, principals)
Name Type Description
cx JSContext * A context.
principals JSPrincipals * Pointer to the JSPrincipals object to hold or drop. This argument must not be NULL.


JSPRINCIPALS_HOLD and JSPRINCIPALS_DROP are used to manage memory for JSPrincipals objects.

Principals are used by the SpiderMonkey security system. JSPrincipals objects are not JSObjects. They are reference counted, not garbage collected. Application code that stores a pointer to a JSPrincipals object must call JSPRINCIPALS_HOLD(cx, principals) before storing it and JSPRINCIPALS_DROP(cx, principals) when done with it.

JSPRINCIPALS_HOLD(cx, principals) increments the reference count of principals by 1.

JSPRINCIPALS_DROP(cx, principals) decrements the reference count of principals by 1. If the reference count drops to 0, indicating that no one is using the object anymore, JSPRINCIPALS_DROP also deallocates principals by calling its destroy method.

See Also