Usage of this shared global datastructure is a big problema. We should never ever use this since it is fundamentally broken and was causing spurious crashes during compilation of regular expressions.
This was causing a crash in the Rubinius compiler.
This was only recently backported to the 1.8.7 OpenSSL extension in MRI but was already fixed long ago in 1.9.x. Since the backport to 1.8.7 only happened after we last upgraded the 1.8.7 version, we need to add this fix too. See http://bugs.ruby-lang.org/issues/show/3000 and http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=33999 Fixes #1514 and #1509
This means we also need to mark Inliners which now happens in the mark_inliners function used by various mark functions for different Executable's. This also showed that NativeFunction wasn't properly marking it's inliners which probably never led to any real problems, but with the change to track the Inliners properly, this did expose this lingering issue. Also removed some redundant checks since we just asserted in the line above that inliners_ isn't null.