Hi Przemek,

2008-07-07 19:32 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
  * source/vm/arrayshb.c
  * contrib/xhb/xhbfunc.c
    ! Moved hb_ArrayID() Harbour level function to xhb.lib.
    ; NOTE: This function is not compatible with x64 architecture.

It can be updated for WIN64 (please remember that only WIN64 has 32 bit LONG type and other x86 based 64bit platforms I know have 64bit LONG type).
It's enopugh to change return value to:

I'm always mixing terminology, sorry, I meant Win64.
[ that's what I wrote first, and I changed to x64 pbly
because I'm bloody tired. ]

  hb_retnint( ( HB_PTR_DIFF ) hb_arrayId( pArray ) );

You're right.

I didn't consider this solution for other places,
but I feel it better to use ptr functions, since
using ints hides logic and not very good at long
term.

anyhow over 4 years ago (28 Apr 2004) I've change this function in
xHarbour to return pointer instead of number so now it should look
like:

  HB_FUNC( HB_ARRAYID )
  {
     PHB_ITEM pArray = hb_param( 1, HB_IT_ARRAY );

hb_retptr( pArray ? ( void * ) pArray->item.asArray.value : NULL );
  }

This version is xHarbour compatible.
Sorry that I forgot to update it in Harbour but for me it was old obsolete
code.

Even better. I've committed it.

Brgds,
Viktor

_______________________________________________
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to