H5T_pad_t new does the right thing: it allocates memory in a ByteArray, and store it in handle inst. var., something like handle := ByteArray new: 4
But then, the generated accessors not so: they consider that a non pointer atomic type does not require an intermediate memory buffer, because FFI can transform directly a Smalltalk atomic object (Integer/Boolean/Character/Float).
value: anObject handle := anObject
They return the buffer instead of the content.
This is completely missing the point: the only reason I have to create an instance of such atomic type is to pass a reference (pointer) to the data, else, I can just use one of the enum accessors and pass the integer value directly:
H5TInteger>>setPadZero API H5Tset_pad: handle with: H5T_pad_t H5T_PAD_ZERO with: H5T_pad_t H5T_PAD_ZERO