On 15 November 2014 15:53, Max Leske <[email protected]> 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.
