[NB] NativeBoost and optCoerceNilToNull
Once again I’m struggling with NativeBoost. I’m trying to use optCoerceNilToNull with this function:
^self call: #(LGitReturnCodeEnum git_commit_create(
LGitId * theCommitId,
LGitSignature * theAuthor,
LGitSignature * theCommitter,
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”.
- The documentation says:
"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.
- Related: there are instances where even non-pointer arguments are allowed to be NULL. Why does optCoerceNilToNull only work for pointer types?
Igor! Help! :)