namazu-users-en
[Top] [All Lists]

Re: Access Violation on nmz_get_field_data

2002-03-06 07:58:22
> I think you need to call nmz_free_hlist(nmz_data_current_hit) on each
> iteration, and need to call nmz_free_internal() before second try.
>
> I don't know it causes such probrem or not, but it would be better.
>

Thank you very much for the quick response. I tried the functions you suggested, and still had the problem. I did get it to work, though, by passing heap-allocated buffers of size BUFSIZE (defined in libnamazu.h) for the fieldname and data parameters of nmz_get_field_data. I suspect there must be an overwrite of sorts in the function. Below is the code:

    nmz_add_index("C:\\namazu\\index");

    NmzResult result = nmz_search("Some query");

    for (int i = 0; i < result.num; i++)
    {
        nmz_data current_hit = result.data[i];
        char * title = (char*)malloc(BUFSIZE);
        char * field = (char*)malloc(BUFSIZE);

        memset (title, 0, BUFSIZE);
        strcpy(field, "title");

        nmz_get_field_data(current_hit.idxid, current_hit.docid, field, title);

        free(title);
        free(field);
    }
    nmz_free_hlist(result);
    nmz_free_internal();

        Regards,

        -Carlos






<Prev in Thread] Current Thread [Next in Thread>