On 15 Nov 2017, at 09:36, Ben Coman <btc@openInWorld.com> wrote:On 15 November 2017 at 17:27, Esteban Lorenzano��<estebanlm@gmail.com> ��wrote:what you need to do here is to pass a ���buffer��� to contain the width and height:
> On 15 Nov 2017, at 02:05, Ben Coman <btc@openInWorld.com> wrote:
>
> What is the recommended way for a C basic type to be passed-by-reference to function wanting to use it for output.
> For example 'width' & 'height' here in this library unction...
>
> In Pharo...
>
>�� ��FFIOpaqueObject subclass: #FPDF_DOCUMENT
>
>�� ��FPDF_GetPageSizeByIndex__document: document
>�� �� �� �� �� �� �� �� �� �� �� �� �� ��page_index: page_index
>�� �� �� �� �� �� �� �� �� �� �� �� �� ��width: width
>�� �� �� �� �� �� �� �� �� �� �� �� �� ��height: height
>�� �� ��^self ffiCall: #(int FPDF_GetPageSizeByIndex(
>�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��FPDF_DOCUMENT *document,
>�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��int page_index,
>�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��FFIFloat64 * width,
>�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��FFIFloat64 * height))
testGetPageSizeByIndex
�� �� �� ����| document page_index widthBuffer heightBuffer width height result|
�� �� �� ����PDFium FPDF_InitLibrary.
�� �� �� ����document := PDFium FPDF_LoadDocument__file_path:�� helloPdf�� password: ''.
�� �� �� ����widthBuffer := ByteArray new: (FFIFloat64 typeSize).
�� �� �� ����heightBuffer := ByteArray new: (FFIFloat64 typeSize).Thanks Esteban. That worked. However I needed a minor tweak...�� ��widthBuffer := ByteArray new: (FFIFloat64 new typeSize).or...�� ��widthBuffer := ByteArray new: (FFIFloat64 externalTypeSize).Now it would be nice to do...�� ��widthBuffer := FFIFloat64 newBuffer.you know, I thought the same :)but since I���m officially on holiday I didn���t do it (yet).��If you want to add an issue and send a PR, it would be perfect :)