Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/KhronosGroup/SPIRV-Cross.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans-Kristian Arntzen <post@arntzen-software.no>2019-09-05 13:43:40 +0300
committerHans-Kristian Arntzen <post@arntzen-software.no>2019-09-06 13:29:47 +0300
commit333980ae914f2930a7d239ac883a3c132d7b35bf (patch)
tree29dac6b9d5c93330fb77330ea4fe685ed143f098 /spirv_parser.cpp
parent5af8a04b6ce38427f5f1a12f38bae33339d84a2b (diff)
Refactor into stronger types in public API.
Some fallout where internal functions are using stronger types. Overkill to move everything over to strong types right now, but perhaps move over to it slowly over time.
Diffstat (limited to 'spirv_parser.cpp')
-rw-r--r--spirv_parser.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/spirv_parser.cpp b/spirv_parser.cpp
index d5a16337..34a0d902 100644
--- a/spirv_parser.cpp
+++ b/spirv_parser.cpp
@@ -278,7 +278,9 @@ void Parser::parse(const Instruction &instruction)
// Strings need nul-terminator and consume the whole word.
uint32_t strlen_words = uint32_t((e.name.size() + 1 + 3) >> 2);
- e.interface_variables.insert(end(e.interface_variables), ops + strlen_words + 2, ops + instruction.length);
+
+ for (uint32_t i = strlen_words + 2; i < instruction.length; i++)
+ e.interface_variables.push_back(ops[i]);
// Set the name of the entry point in case OpName is not provided later.
ir.set_name(ops[1], e.name);
@@ -658,7 +660,7 @@ void Parser::parse(const Instruction &instruction)
}
}
- if (type.type_alias == 0)
+ if (type.type_alias == TypeID(0))
global_struct_cache.push_back(id);
}
break;
@@ -1008,12 +1010,12 @@ void Parser::parse(const Instruction &instruction)
ir.block_meta[current_block->self] |= ParsedIR::BLOCK_META_LOOP_HEADER_BIT;
ir.block_meta[current_block->merge_block] |= ParsedIR::BLOCK_META_LOOP_MERGE_BIT;
- ir.continue_block_to_loop_header[current_block->continue_block] = current_block->self;
+ ir.continue_block_to_loop_header[current_block->continue_block] = BlockID(current_block->self);
// Don't add loop headers to continue blocks,
// which would make it impossible branch into the loop header since
// they are treated as continues.
- if (current_block->continue_block != current_block->self)
+ if (current_block->continue_block != BlockID(current_block->self))
ir.block_meta[current_block->continue_block] |= ParsedIR::BLOCK_META_CONTINUE_BIT;
if (length >= 3)