Skip to content
Snippets Groups Projects
  1. Jun 14, 2016
    • Yorick Peterse's avatar
    • Yorick Peterse's avatar
      Fixed getting classes from Tracepoint objects · 52f3388b
      Yorick Peterse authored
      Apparently when using RBASIC_CLASS() sometimes Ruby returns something
      that _looks_ like a VALUE but isn't. This results in Ruby sometimes
      treating it as a Fixnum of sorts while in other cases it just segfaults.
      
      To work around this we're now using rb_tracearg_defined_class() to get
      an object class, which seems to be the correct way of doing it (based on
      digging through the MRI source code).
      
      One small nuisance is that we now also get singleton classes which we
      generally don't care about (since there's always only one of them). This
      means we'll need to filter these out whenever we generate a Ruby Hash
      containing the counts per class. Of course MRI doesn't provide a sane
      API for this (that doesn't involve calling Ruby methods) so we instead
      use the same logic as MRI's implementation of Class#singleton_class?
      uses.
      Verified
      52f3388b
  2. Jun 13, 2016
  3. Feb 15, 2016
  4. Jan 04, 2016
  5. Dec 31, 2015
  6. Dec 17, 2015
Loading