code: def _raw_object_cache_getbuffer(self, data):
          
          if self._object_cache_getbuffer is None:
              return
          module_ptr = data.contents.module_ptr
          module = self._find_module_ptr(module_ptr)
          if module is None:
              # The LLVM EE should only give notifications for modules
              # known by us.
              raise RuntimeError("object compilation notification "
                                 "for unknown module %s" % (module_ptr,))
  
          buf = self._object_cache_getbuffer(module)
          if buf is not None:
              # Create a copy, which will be freed by the caller
              data[0].buf_ptr = ffi.lib.LLVMPY_CreateByteString(buf, len(buf))
              data[0].buf_len = len(buf)
docs: Low-level getbuffer hook.