internals:engine
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
internals:engine [2010/04/20 10:52] – Show code properly derick | internals:engine [2010/04/25 20:11] – derick | ||
---|---|---|---|
Line 24: | Line 24: | ||
- | ==== Throwing Exceptions | + | ==== Memory Management ==== |
+ | |||
+ | [12:00pm] scoates: ok.. last question for now, I think: should I explicitly destroy | ||
+ | [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