[Nepomuk] Segfault on QueryParser
Sebastian Trueg
trueg at kde.org
Sun Dec 13 20:19:44 CET 2009
Hi Alessandro,
cross-posting to list since this might be interesting for others, too:
Alessandro Sivieri wrote:
> --------------------------------------
> Code fragment:
> void TagsFacet::emitTerm()
> {
> QString parsed = merge(d->labels);
> Query::Query query = Query::QueryParser::parseQuery(parsed);
> Query::Term term = query.term();
> emit queryTermChanged(term);
> }
>
> QString TagsFacet::merge(const QStringList& list) const
> {
> int i;
> QString result;
>
> for (i = 0; i < list.size(); ++i) {
> if (i > 0) {
> result.append(" AND ");
> }
> result.append("hastag:");
> result.append(list[i]);
> }
>
> return result;
> }
this is completely unrelated to the crash but why don't you create
ComparisonTerms directly here? After all you can just do:
ComparisonTerm( NAO::hasTag(), LiteralTerm( list[i] ) );
And it will result in a query like
?r nao:hasTag ?t . ?t rdfs:label ?l . ?l bif:contains "foobar" .
Ok, the crash:
Attached you will find a fix with which the app works very nicely. I
don't know about the crash you mention but the problem with your code is
this:
You use the same Private class name for all the classes. I don't know
the exact result but it is surely not the expected one. MainWindow for
example could end up using the Private class from Tab. When trying to
access a member which is out of the scope of the latter you get a crash.
Cheers,
Sebastian
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: sembrowser-d-pointer-fix.diff
Url: http://mail.kde.org/pipermail/nepomuk/attachments/20091213/ef9b1ab6/attachment.bat
More information about the Nepomuk
mailing list