Skip to content
  • Rafael Espindola's avatar
    Don't own the buffer in object::Binary. · 48af1c2a
    Rafael Espindola authored
    Owning the buffer is somewhat inflexible. Some Binaries have sub Binaries
    (like Archive) and we had to create dummy buffers just to handle that. It is
    also a bad fit for IRObjectFile where the Module wants to own the buffer too.
    
    Keeping this ownership would make supporting IR inside native objects
    particularly painful.
    
    This patch focuses in lib/Object. If something elsewhere used to own an Binary,
    now it also owns a MemoryBuffer.
    
    This patch introduces a few new types.
    
    * MemoryBufferRef. This is just a pair of StringRefs for the data and name.
      This is to MemoryBuffer as StringRef is to std::string.
    * OwningBinary. A combination of Binary and a MemoryBuffer. This is needed
      for convenience functions that take a filename and return both the
      buffer and the Binary using that buffer.
    
    The C api now uses OwningBinary to avoid any change in semantics. I will start
    a new thread to see if we want to change it and how.
    
    llvm-svn: 216002
    48af1c2a
Loading