From 25bcc0730ae297f0b37045765dc2c28aef2e7038 Mon Sep 17 00:00:00 2001 From: Antonio Linares Date: Tue, 12 Nov 2002 13:31:56 +0000 Subject: [PATCH] strings as bytes arrays management implemented --- harbour/source/vm/hvm.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/harbour/source/vm/hvm.c b/harbour/source/vm/hvm.c index c55d502a27..40c748c369 100644 --- a/harbour/source/vm/hvm.c +++ b/harbour/source/vm/hvm.c @@ -2670,6 +2670,27 @@ static void hb_vmArrayPush( void ) return; } +#ifndef HB_C52_STRICT + if( HB_IS_STRING( pArray ) ) + { + BYTE b = 0; + HB_ITEM item; + + if( ulIndex > 0 && ulIndex <= pArray->item.asString.length ) + b = pArray->item.asString.value[ ulIndex - 1 ]; + else + hb_errRT_BASE( EG_BOUND, 1132, NULL, hb_langDGetErrorDesc( EG_ARRACCESS ), + 2, pArray, pIndex ); + + hb_itemInit( &item ); + hb_itemPutNI( &item, b ); + hb_stackPop(); + hb_itemCopy( hb_stackItemFromTop( -1 ), &item ); + hb_itemClear( &item ); + return; + } +#endif + if( HB_IS_OBJECT( pArray ) && hb_objHasMsg( pArray, "__OpArrayIndex" ) ) { hb_vmOperatorCall( pArray, pIndex, "__OPARRAYINDEX" );