new_contents: """
  General example for an attack against code like this:
  
      Py_DECREF(obj->attr); obj->attr = ...;
  
  here in Module/_json.c:scanner_init().
  
  Explanation: if the first Py_DECREF() calls either a __del__ or a
  weakref callback, it will run while the 'obj' appears to have in
  'obj->attr' still the old reference to the object, but not holding
  the reference count any more.
  
  Status: progress has been made replacing these cases, but there is an
  infinite number of such cases.
  """
  
  import _json, weakref
  
  class Ctx1(object):
      encoding = "utf8"
      strict = None
      object_hook = None
      object_pairs_hook = None
      parse_float = None
      parse_int = None
      parse_constant = None
  
  class Foo(unicode):
      pass
  
  def delete_me(*args):
      print scanner.encoding.__dict__
  
  class Ctx2(Ctx1):
      @property
      def encoding(self):
          global wref
          f = Foo("utf8")
          f.abc = globals()
          wref = weakref.ref(f, delete_me)
          return f
  
  scanner = _json.make_scanner(Ctx1())
  scanner.__init__(Ctx2())
  
subject: Add a crasher for the documented issue of calling "Py_DECREF(self->xxx)";