Sha256: 9a436aa282fa2aa06c31cff2b0749ba02db07c751098a846bd79c2aa58c58a2f
Contents?: true
Size: 871 Bytes
Versions: 2
Compression:
Stored size: 871 Bytes
Contents
This library does a lot of arbitrary mixing of C and C++. That's inherently dangerous. Following is one VERY IMPORTANT consideration to bear in mind regarding C++ objects with nontrivial destructors (i.e. V8!): http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/100535 > Second, ruby's exception handling via setjmp/longjmp effectively means > you should never construct a C++ object with a nontrivial destructor > on the stack. If ruby longjmps out of your code, your destructors > will not be called. It's worse than that; if ruby longjmps over the destruction of an automatic object, the program has undefined behavior. And if a C++ exception ever leaves C++ code and goes into Ruby code, the result will also be undefined. C99 programmers also have to be careful; longjmping over the destruction of a variable-length array can result in a memory leak.
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
tomato-0.0.1.prealpha2 | ext/tomato/IMPORTANT |
tomato-0.0.1.prealpha1 | ext/tomato/IMPORTANT |