示例#1
0
url_finalize(JSContext *cx, JSObject *obj)
{
    JSURL *url;
    MochaDecoder *decoder;
    MWContext *context;
    LO_AnchorData *anchor_data;

    url = JS_GetPrivate(cx, obj);
    if (!url)
	return;
    decoder = url->url_decoder;
    if (url->index != URL_NOT_INDEXED) {
	context = decoder->window_context;
	if (context) {
	    LO_LockLayout();
	    anchor_data = LO_GetLinkByIndex(context, url->layer_id, 
                                            url->index);
	    if (anchor_data && anchor_data->mocha_object == obj)
		anchor_data->mocha_object = NULL;
	    LO_UnlockLayout();
	}
    }
    DROP_BACK_COUNT(decoder);
    JS_RemoveRoot(cx, &url->href);
    JS_RemoveRoot(cx, &url->target);
    JS_RemoveRoot(cx, &url->text);
    XP_DELETE(url);
}
示例#2
0
anchor_finalize(JSContext *cx, JSObject *obj)
{
    JSAnchor *named_anchor;
    MochaDecoder *decoder;
    MWContext *context;
    lo_NameList *name_rec;

    named_anchor = JS_GetPrivate(cx, obj);
    if (!named_anchor)
        return;
    decoder = named_anchor->decoder;
    context = decoder->window_context;
    if (context) {
	LO_LockLayout();
	name_rec = LO_GetNamedAnchorByIndex(context, named_anchor->layer_id,
                                            named_anchor->index);
	if (name_rec && name_rec->mocha_object == obj)
	    name_rec->mocha_object = NULL;
	LO_UnlockLayout();
    }
    DROP_BACK_COUNT(decoder);
    JS_UnlockGCThing(cx, named_anchor->text);
    JS_UnlockGCThing(cx, named_anchor->name);
    JS_free(cx, named_anchor);
}
示例#3
0
event_finalize(JSContext *cx, JSObject *obj)
{
    JSEvent *event;

    event = JS_GetPrivate(cx, obj);
    if (!event)
	return;
    DROP_BACK_COUNT(event->decoder);
    JS_free(cx, event);
}
示例#4
0
componentarray_finalize(JSContext *cx, JSObject *obj)
{
    JSComponentArray* array;

    array = JS_GetPrivate(cx, obj);
    if (!array)
	return;
    DROP_BACK_COUNT(array->decoder);
    JS_free(cx, array);
}
示例#5
0
component_finalize(JSContext *cx, JSObject *obj)
{
    JSComponent* component;

    component = JS_GetPrivate(cx, obj);
    if (!component)
	return;
    JS_UnlockGCThing(cx, component->name);
    DROP_BACK_COUNT(component->decoder);
    JS_free(cx, component);
}