[redland-dev] Subtle error in Redland or Ada bindings
Dave Beckett
dave at dajobe.org
Sat Aug 9 18:00:45 EDT 2014
On 8/5/14, 9:17 AM, Victor Porton wrote:
> In
> https://github.com/vporton/redland-bindings/tree/e0d5aa40de42fb1aad4cecb27e59c8dd566cc84a
> the Ada program src/test/special_test.adb prints '0' as the value of a pointer which is created by raptor_new_uri_from_counted_string() and must not be NULL.
>
> I suspect that this is an error in Raptor itself not my Ada code.
>
> Investigating this error is specifically difficult. I will try more, but it is hard.
>
> It is also weird that replacing
>
> URI_1_Handle: constant RDF.Raptor.URI.Handle_Type := Get_Handle(From_String(World, URI_1));
> -- URI_1_Handle: constant RDF.Raptor.URI.Handle_Type :=
> -- C_Raptor_New_Uri_From_Counted_String(Get_Handle(World), To_C(URI_1, Append_Nul=>True), URI_1'Length);
>
> with equivalent code
>
> -- URI_1_Handle: constant RDF.Raptor.URI.Handle_Type := Get_Handle(From_String(World, URI_1));
> URI_1_Handle: constant RDF.Raptor.URI.Handle_Type :=
> C_Raptor_New_Uri_From_Counted_String(Get_Handle(World), To_C(URI_1, Append_Nul=>True), URI_1'Length);
>
> eliminates the error. I have no idea why.
I updated the GIT code for raptor_new_uri_from_counted_string() to not
assume that there is a NUL.
Dave
More information about the redland-dev
mailing list