shader/shader_ir: Place implementations of constructor and destructor in cpp file

Given the class contains quite a lot of non-trivial types, place the
constructor and destructor within the cpp file to avoid inlining
construction and destruction code everywhere the class is used.
This commit is contained in:
Lioncash 2019-05-19 04:01:59 -04:00
parent fb85d5670d
commit ce04ab38bb
2 changed files with 9 additions and 5 deletions

View file

@ -21,6 +21,13 @@ using Tegra::Shader::PredCondition;
using Tegra::Shader::PredOperation; using Tegra::Shader::PredOperation;
using Tegra::Shader::Register; using Tegra::Shader::Register;
ShaderIR::ShaderIR(const ProgramCode& program_code, u32 main_offset)
: program_code{program_code}, main_offset{main_offset} {
Decode();
}
ShaderIR::~ShaderIR() = default;
Node ShaderIR::StoreNode(NodeData&& node_data) { Node ShaderIR::StoreNode(NodeData&& node_data) {
auto store = std::make_unique<NodeData>(node_data); auto store = std::make_unique<NodeData>(node_data);
const Node node = store.get(); const Node node = store.get();

View file

@ -567,11 +567,8 @@ private:
class ShaderIR final { class ShaderIR final {
public: public:
explicit ShaderIR(const ProgramCode& program_code, u32 main_offset) explicit ShaderIR(const ProgramCode& program_code, u32 main_offset);
: program_code{program_code}, main_offset{main_offset} { ~ShaderIR();
Decode();
}
const std::map<u32, NodeBlock>& GetBasicBlocks() const { const std::map<u32, NodeBlock>& GetBasicBlocks() const {
return basic_blocks; return basic_blocks;