Просмотр исходного кода

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.
Lioncash 7 лет назад
Родитель
Сommit
ce04ab38bb
2 измененных файлов с 9 добавлено и 5 удалено
  1. 7 0
      src/video_core/shader/shader_ir.cpp
  2. 2 5
      src/video_core/shader/shader_ir.h

+ 7 - 0
src/video_core/shader/shader_ir.cpp

@@ -21,6 +21,13 @@ using Tegra::Shader::PredCondition;
 using Tegra::Shader::PredOperation;
 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) {
     auto store = std::make_unique<NodeData>(node_data);
     const Node node = store.get();

+ 2 - 5
src/video_core/shader/shader_ir.h

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