Re: help request: php array

From: Date: Tue, 07 Oct 2003 13:09:24 +0000
Subject: Re: help request: php array
References: 1 2  Groups: php.internals 
Request: Send a blank email to internals+get-4723@lists.php.net to get a copy of this message
Wez Furlong wrote:
Try something like this: if (rep_CONSP(in)) { array_init(return_value); /* sets it up as an array */ for (i = in; i != Qnil; i = rep_CDR(i)) {
     zval *tmp;
     MAKE_STD_ZVAL(tmp);
     rep_data_converter(rep_CAR(i), tmp);
     add_next_index_zval(return_value, tmp); /* equivalent to $ret[] = $tmp
*/ } }
if(rep_CONSP(in)) {
       zval php_array;
       //zend_hash_init(&php_array,100,
       repv i,t;
       for(i=in;i!=Qnil;i=rep_CDR(i)) {
           printf("REP FWD to next element\n");
           rep_data_converter(rep_CAR(i),&t);
           /* ??? add t to array php_array */
       }
}
I guess it almost works :
if(rep_CONSP(in)) {
       repv i;
       for(i=in;i!=Qnil;i=rep_CDR(i)) {
           zval *t;
           MAKE_STD_ZVAL(t);
           printf("REP FWD to next element PT1\n");
           rep_data_converter(rep_CAR(i),t);
           printf("REP FWD to next element PT2\n");
           add_next_index_zval(return_value, t);
           printf("REP FWD to next element PT3\n");
           /* ??? add t to array() */
       }
} ---8<---
                                                                                             
REP FWD to next element PT1 REP FWD to next element PT2 rep: received fatal signal: Segmentation fault struct debug_buf common: Backtrace in `fatal_signal_handler':
       <(null)+1107463240>
       <add_next_index_zval+28>
       <rep_data_converter+215>
       <zif_rep_eval+201>
       <execute+7234>
       <zend_execute_scripts+107>
       <php_execute_script+316>
       <main+1629>
Lisp backtrace: Segmentation fault ---8<--- Is that rep's or php's problem? May be t should be duplicated? If yes, how? -- NetCat ------------------------------------------------------ SPAM-Free 10mb Free email + Antivirus + POP3 + more... Get it at http://www.doal.co.il:81/free/?c=all-spam

« previous php.internals (#4723) next »