compnerd added inline comments.
================ Comment at: lldb/source/Plugins/ObjectFile/COFF/ObjectFileCOFF.cpp:103-104 + + return new ObjectFileCOFF(module_sp, data_sp, data_offset, file, file_offset, + length); +} ---------------- bulbazord wrote: > compnerd wrote: > > bulbazord wrote: > > > Reading the implementation of the constructor, it looks like the > > > constructor can fail to initialize correctly (specifically `m_object` may > > > not be correctly populated). What are callers supposed to do in the way > > > of validation here? Maybe there is further validation we can do in this > > > function so that the constructor is only invoked if we're absolutely sure > > > it will work? > > There isn't much you can do IMO. The `new` can fail just as well - at > > which point, what do we do? The constructor should only really fail if the > > return type from libLLVMObject has suddenly changed into an invalid type. > > That cast really cannot fail in a way that we can recover from. > `createBinary` and the subsequent cast may not fail in a recoverable fashion > but doing it in the constructor means that whatever is trying to create an > object gets back an `ObjectFileCOFF` object even if it wasn't initialized > correctly. If you did that work in `CreateInstance`, you could return > `nullptr` if `createBinary` and that cast failed. Ah, sinking that into this seems plausible, and then the constructor takes the binary? WFM! Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D149987/new/ https://reviews.llvm.org/D149987 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits