Igor Could you document this part of NB? Write one page on your old blog so that after we can turn it into a real doc. Stef On 15/11/14 22:28, Igor Stasenko wrote:
On 15 November 2014 15:53, Max Leske <maxleske@gmail.com <mailto:maxleske@gmail.com>> wrote:
Once again Iâm struggling with NativeBoost. Iâm trying to use optCoerceNilToNull with this function:
^self call: #(LGitReturnCodeEnum git_commit_create( LGitId * theCommitId, LGitRepository repo, String update_ref, LGitSignature * theAuthor, LGitSignature * theCommitter, String message_encoding, String theMessage, LGitTree theTree, int parent_count, LGitCommit * parentsPointer)) options: #( optCoerceNilToNull )
The last argument can be NULL, per documentation, (no parents). LGitCommit is a subclass of NBExternalObject and apparently NBExternalObjctType>>pushAsPointer: does *not* use the optCoerceNilToNull option (the super implementation in NBExternalType>>pushAsPointer: however does). The upshot of course is that the call fails with âan instance of LGitCommit expectedâ.
My questions: - The documentation says:
"#optCoerceNilToNull" "passing nil as a pointer-type argument, converts it to C NULL â
but apparently this doesnât apply to every pointer type. Should the documentation be updated? - Why does NBExternlObjectType not use optCoerceNilToNull? I donât want to use tricks to pass null if I donât have to.
perhaps because it is not there? :) So, lets add it.
- Related: there are instances where even non-pointer arguments are allowed to be NULL. Why does optCoerceNilToNull only work for pointer types?
like what? Suppose the argument type is a structure, e.g "struct foo bar", that is non-pointer type. What in this case the NULL value for the structure?
Igor! Help! :)
Cheers, Max
-- Best regards, Igor Stasenko.