Did I make the problem statement clear?.

With regards
Kamesh Jayachandran
On Mon, 28 Jun 2004 22:57:38 -0700, "Kamesh Jayachandran"
<[EMAIL PROTECTED]> said:
> Hi Andi,
> In Zend/zend.c
> function name is compiler_globals_ctor
> This function is defined inside the #ifdef ZTS macro
> Line of concern 
> zend_hash_copy(compiler_globals->class_table, global_class_table,
> (copy_ctor_func_t) zend_class_add_ref, &tmp_class,
> sizeof(zend_class_entry));
> 
> If I am correct our global_class_table is a hash table of classname
> versus zend_class_entry**.
> 
> In this case while making a copy og global_class_table to thread
> specific class_table in a deep fashion. zend_hash_copy has to do the
> double dereferencing which it can't being a generic fuinction.
> 
> 
> So my contention is 
> The above line should be the following
> zend_hash_copy(compiler_globals->class_table, global_class_table,
> (copy_ctor_func_t) zend_class_add_ref, &tmp_class,
> sizeof(zend_class_entry*));
> If sharing of class entries are desired across threads.
> Else
> We should write a custom class_table deep copy function.
> 
> 
> Hope I made it clear.
> Awaiting for your comments.
> 
> With regards
> Kamesh Jayachandran
> 
> 
> 
> 
> On Mon, 28 Jun 2004 07:58:59 -0700, "Andi Gutmans" <[EMAIL PROTECTED]> said:
> > I don't quite understand the question.
> > Can you rephrase what exactly is bothering you?
> > 
> > Andi
> > 
> > At 03:46 AM 6/28/2004 +0530, Kamesh Jayachandran wrote:
> > >Hi All,
> > >Sorry to repost for the third time.
> > >I want the clarification regarding copying the global_class_table to
> > >thread specific compiler_globals->class_table in compiler_globals_ctor
> > >in Zend/zend.c.
> > >
> > >According to me memcpy should copy 'whatever source points to' to
> > >'destination'.
> > >Our class_table hashtable structure looks like this,
> > >char *key;
> > >zend_class_entry** value;
> > >So memcpy should copy only whatever (zend_class_entry**) points to which
> > >is semantically wrong good candidate for Segmentation fault.
> > >
> > >No way memcpy can do double dereferencing for this case.
> > >
> > >Somehow in Linux when i compile it with maintainer-zts-mode memcpy
> > >copies the data fine.
> > >I verified all the internal classes. Thread specific class_table is in
> > >sink with the global_class_table.
> > >
> > >
> > >Please clarify.
> > >
> > >Thanks in Advance
> > >
> > >
> > >With regards
> > >Kamesh Jayachandran
> > >
> > >--
> > >PHP Internals - PHP Runtime Development Mailing List
> > >To unsubscribe, visit: http://www.php.net/unsub.php
> > 
> > 
> 
> -- 
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
> 

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to