On Tue, 12 Jan 2010, Xavi wrote:
Hi,
I'm trying to mix both versions but when the address of the HB_GC_FUNCS
is not available I don't know how to do it.
Yes, thank you Przemek, I can do the same with .-
HANDLE wapi_par_HANDLE( int iParam )
{
PHB_ITEM pItem = hb_param( iParam,
Hi Przemek,
Yes, it is. Anyhow accepting unknown pointer items is also wrong
and I do not want to add to core code functions which are not usable
for code which cleanly checks all pointer items.
Yes I see it. Thank you for teach me to see.
It can be done in few different ways, i.e. you can
Hi Przemek,
The ides of hb_itemGetPtrGC() is to _NOT_ make such things and return
_ONLY_ pointers which are exactly the requested type.
... Ok, I can assume so.
return ( HANDLE ) ( ph ? *ph : NULL );
But this assumes that it's always GC.
Perhaps we need an API function .-
BOOL
On Mon, 11 Jan 2010, Xavi wrote:
Hi,
... Ok, I can assume so.
return ( HANDLE ) ( ph ? *ph : NULL );
But this assumes that it's always GC.
Perhaps we need an API function .-
It does not assume anything. It only accepts any pointer items
but I do not see any difference in accepting
Hi,
Sorry but I do not see any problem so I cannot advice you any solution.
You have to precisely define what you need and why.
From Xavi's sample:
HANDLE wapi_par_HANDLE( int iParam )
{
void ** ph = ( void ** ) hb_parptrGC( NULL, iParam );
return (ph ? ( HANDLE ) *ph : ( HANDLE )
On Mon, 11 Jan 2010, Mindaugas Kavaliauskas wrote:
Hi,
From Xavi's sample:
HANDLE wapi_par_HANDLE( int iParam )
{
void ** ph = ( void ** ) hb_parptrGC( NULL, iParam );
return (ph ? ( HANDLE ) *ph : ( HANDLE ) hb_parptr( iParam ));
}
I guess, he is trying to avoid logic of GC
Thank you very much Mindaugas,
I'm trying to mix both versions but when the address of the HB_GC_FUNCS is not
available I don't know how to do it.
Yes, thank you Przemek, I can do the same with .-
HANDLE wapi_par_HANDLE( int iParam )
{
PHB_ITEM pItem = hb_param( iParam, HB_IT_POINTER );
Hi All,
IMHO the next changes in the functions hb_parptrGC and hb_itemGetPtrGC .-
void * hb_parptrGC( const HB_GC_FUNCS * pFuncs, int iParam )
{
HB_STACK_TLS_PRELOAD
HB_TRACE(HB_TR_DEBUG, (hb_parptrGC(%p,%d), pFuncs, iParam));
if( iParam = -1 iParam = hb_pcount() )
{
Hi Xavi,
IMHO the next changes in the functions hb_parptrGC and hb_itemGetPtrGC .-
void * hb_parptrGC( const HB_GC_FUNCS * pFuncs, int iParam )
{
...
if( HB_IS_POINTER( pItem ) pItem-item.asPointer.collect )
{
if( pFuncs )
return (hb_gcFuncs(
Hi Viktor,
The case where pFunc is NULL seems to be covered already
by existing pure hb_parptr() (and friend) functions.
To me seems to not is covered because we need another function to know if it's
collect or direct and take reference or address.
return (ph ? ( HANDLE ) *ph : ( HANDLE )
On Mon, 11 Jan 2010, Xavi wrote:
Hi,
IMHO the next changes in the functions hb_parptrGC and hb_itemGetPtrGC .-
void * hb_itemGetPtrGC( PHB_ITEM pItem, const HB_GC_FUNCS * pFuncs )
{
HB_TRACE(HB_TR_DEBUG, (hb_itemGetPtrGC(%p,%p), pItem, pFuncs));
if( pItem HB_IS_POINTER( pItem )
11 matches
Mail list logo