internals:engine

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
internals:engine [2010/04/20 10:41] – Moved FAQ here for now derickinternals:engine [2010/04/25 20:11] derick
Line 5: Line 5:
   * each op_array has an array of literals (constant values)   * each op_array has an array of literals (constant values)
   * opocde operands don't contain zval directly any more but points to thistable instead   * opocde operands don't contain zval directly any more but points to thistable instead
-  * during compilation they are accessible by index e.gop_array->literals[opline->op1.constant].constant +  * during compilation they are accessible by index e.g: <code>op_array->literals[opline->op1.constant].constant</code> 
-  * the pass_two() changes indexes into pointers so during execution they are accessible by opline->op1.zv+  * the pass_two() changes indexes into pointers so during execution they are accessible by: <code>opline->op1.zv</code>
  
  
Line 24: Line 24:
  
  
-==== Throwing Exceptions on a 64bit Architecture ====+==== Memory Management ==== 
 + 
 +  [12:00pm] scoates: ok.. last question for now, I think: should I explicitly destroy on RSHUTDOWN, or let the non-persistent flag take care of that? 
 +  [12:00pm] johannes_: always cleanup yourself 
 + 
 +Note here: while MM shutdown will take care of all allocated memory, it won't run any dtors etc., that's why it is important to clean up the resources properly - otherwise external dependencies can be messed up. And of course you'd get leaks reported in the debug mode.  
 + 
 +==== Causes for crashes ==== 
 + 
 +=== Throwing Exceptions ===
  
 If throwing exceptions results in a segmentation fault on 64bit systems only, then be sure that you have: If throwing exceptions results in a segmentation fault on 64bit systems only, then be sure that you have:
Line 31: Line 40:
 (Remark: This header is always needed. The segfault might be caused by the fact, that C defaults the return value and parameters of undefined parameters to int. In cases where pointers and/or long data types are needed this might be wrong so a wrong function call is being made. A good compiler should give a warning. --johannes) (Remark: This header is always needed. The segfault might be caused by the fact, that C defaults the return value and parameters of undefined parameters to int. In cases where pointers and/or long data types are needed this might be wrong so a wrong function call is being made. A good compiler should give a warning. --johannes)
  
-==== Not yet categorized ====+==== Hashes ====
   [11:58am] scoates: what's the difference between zend_hash_[add] and zend_hash_quick_[add] ?   [11:58am] scoates: what's the difference between zend_hash_[add] and zend_hash_quick_[add] ?
   [11:58am] scoates: removal of gofaster loops? (-:   [11:58am] scoates: removal of gofaster loops? (-:
   [11:58am] Derick: with the 2nd one you can provide an already calculated hash-list index   [11:58am] Derick: with the 2nd one you can provide an already calculated hash-list index
-  [11:58am] Derick: plus some spaces  
  
   [11:59am] scoates: and the hashtable will automatically grow on _add, right? the length passed to init is just a hint?   [11:59am] scoates: and the hashtable will automatically grow on _add, right? the length passed to init is just a hint?
   [11:59am] johannes_: right   [11:59am] johannes_: right
  
-  [12:00pm] scoates: ok.. last question for now, I think: should I explicitly destroy on RSHUTDOWN, or let the non-persistent flag take care of that? +===== Unsorted =====
-  [12:00pm] johannes_: always cleanup yourself +
-  [12:02pm] Derick: just like mommy told you +
-  [12:02pm] Derick: :) +
- +
-Note here: while MM shutdown will take care of all allocated memory, it won't run any dtors etc., that's why it is important to clean up the resources properly - otherwise external dependencies can be messed up. And of course you'd get leaks reported in the debug mode. +
  
 +Add your random stuff here. I'll move it/update it/fix it (Derick)
internals/engine.txt · Last modified: 2017/09/22 13:28 by 127.0.0.1