[webkit-dev] gdom_x_path_evaluator_create_ns_resolver [was: webkit #16401]
Luke Kenneth Casson Leighton
lkcl at lkcl.net
Mon Jun 8 07:55:09 PDT 2009
> Well I tried:
>
>
> GdomXPathResult *res;
> char* exp = "//html:select";
> GdomDocument *doc = get_dom_document();
> GdomNodeList *els = gdom_document_get_elements_by_tag_name(doc,
> "body");
> GdomNode *body = gdom_node_list_item(els, 0);
> GdomXPathNSResolver *resolver =
> gdom_document_create_ns_resolver(doc, body);
>
>
> g_warning("init completed");
>
> gdom_document_evaluate(doc, exp, GDOM_NODE(body), resolver, 0, res);
>
> The warning is printed followed by a segfault.
>
> gdb told me (relevant parts):
>
> #0 0x00007fb6215ea058 in g_type_check_instance_cast () from
> /usr/lib/libgobject-2.0.so.0
> #1 0x00007fb623d21cb9 in WebKit::core () from
> /usr/local/lib/libwebkit-1.0.so.2
> #2 0x00007fb623cc55ab in gdom_document_evaluate () from
> /usr/local/lib/libwebkit-1.0.so.2
>
> It seems like an argument is broken.
hmm, i'm guessing it's the uninitialised last argument (from the
g_type_check_instance_cast) but it could equally, athough unlikely, be
the body arg.
you really need to recompile some of these object files with debug
info. try rm DerivedSources/gdom/*GdomDocument*.lo, do export CXX=gcc
-g -g, re-run configure etc. that will get you _just_ debug info in
the gdom_document_* functions which will be enough for the purposes
here, without forcing you to recompile absolutely damn everything.
but yes - try NULL on that last argument (just a guess, here) err
nope, no can do, there - take a look at
DerivedSources/gdom/GdomDocument.cpp:
GdomXPathResult *
gdom_document_evaluate (GdomDocument *thiz, gchar * expression,
GdomNode * context_node, GdomXPathNSResolver * resolver, gushort type,
GdomXPathResult * in_result)
{
....
....
WebCore::XPathResult * _g_in_result = WebKit::core(in_result);
g_return_val_if_fail (_g_in_result, 0);
....
}
so - nope, in_result cannot be NULL, and you absolutely must _not_
pass in an uninitialised variable, either.
so - you're going to have to find a GdomXPathResult instance from somewhere.
keep looking around for documentation on this function, i'll do
likewise: if anyone has anything to contribute that can help leon out,
it would be appreciated.
l.
More information about the webkit-dev
mailing list