You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-07 12:30:27 +00:00
Fixes logically dead code (Coverity)
Fixes reported logically dead codes by Coverity * image.cpp: Doesn't really need any modification. But to remove the bug report then we have to move the MAX call away from the for loop statement. * rasterizer_gles3.cpp: Removes unnecessary elif condition since it is checked earlier in the function * collada.cpp: If stamement never reached due to macro ERR_CONTINUE does the same. * navigation_mesh.cpp: Variables should always be null - however, also checked for the very same condition in their function call. Leaving this for review (whether the function call is necessary or not) * path_editor_plugin.cpp: If cancel is true, then it should restore the edited value to the original provided. http://docs.godotengine.org/en/3.0/classes/class_editorspatialgizmo.html#class-editorspatialgizmo-commit-handle * spatial_editor_gizmos.cpp: the very condition of i >= 3 is predetermined in the if case right before it. Thus case 1 is always '1' and case 2 is always '-1' * grid_map_editor.cpp: Same as above in spatial_editor_gizmos.cpp * voxel_light_baker.cpp: Same as above in spatial_editor_gizmos.cpp * visual_server.cpp: Same as above in spatial_editor_gizmos.cpp * visual_script_expression.cpp: char '-' is already true in the switch case mechanism. Thus it can never reach to default case. * particles.cpp: Case 'PARAM_MAX' is unreachable due to index checking right before the switch execution. * shader_language.cpp: Invalid index is handled in switch default case. `type < TYPE_FLOAT && type > TYPE_VEC4` -> `(type < TYPE_FLOAT || type > TYPE_VEC4`) Fixes the "always false problem" in TODO comment.
This commit is contained in:
@@ -2677,7 +2677,6 @@ ShaderLanguage::Node *ShaderLanguage::_parse_expression(BlockNode *p_block, cons
|
||||
return NULL;
|
||||
}
|
||||
|
||||
bool index_valid = false;
|
||||
DataType member_type = TYPE_VOID;
|
||||
|
||||
switch (expr->get_datatype()) {
|
||||
@@ -2696,7 +2695,7 @@ ShaderLanguage::Node *ShaderLanguage::_parse_expression(BlockNode *p_block, cons
|
||||
_set_error("Only integer constants are allowed as index at the moment");
|
||||
return NULL;
|
||||
}
|
||||
index_valid = true;
|
||||
|
||||
switch (expr->get_datatype()) {
|
||||
case TYPE_BVEC2: member_type = TYPE_BOOL; break;
|
||||
case TYPE_VEC2: member_type = TYPE_FLOAT; break;
|
||||
@@ -2721,7 +2720,7 @@ ShaderLanguage::Node *ShaderLanguage::_parse_expression(BlockNode *p_block, cons
|
||||
_set_error("Only integer constants are allowed as index at the moment");
|
||||
return NULL;
|
||||
}
|
||||
index_valid = true;
|
||||
|
||||
switch (expr->get_datatype()) {
|
||||
case TYPE_BVEC3: member_type = TYPE_BOOL; break;
|
||||
case TYPE_VEC3: member_type = TYPE_FLOAT; break;
|
||||
@@ -2745,7 +2744,7 @@ ShaderLanguage::Node *ShaderLanguage::_parse_expression(BlockNode *p_block, cons
|
||||
_set_error("Only integer constants are allowed as index at the moment");
|
||||
return NULL;
|
||||
}
|
||||
index_valid = true;
|
||||
|
||||
switch (expr->get_datatype()) {
|
||||
case TYPE_BVEC4: member_type = TYPE_BOOL; break;
|
||||
case TYPE_VEC4: member_type = TYPE_FLOAT; break;
|
||||
@@ -2760,11 +2759,6 @@ ShaderLanguage::Node *ShaderLanguage::_parse_expression(BlockNode *p_block, cons
|
||||
}
|
||||
}
|
||||
|
||||
if (!index_valid) {
|
||||
_set_error("Invalid index");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
OperatorNode *op = alloc_node<OperatorNode>();
|
||||
op->op = OP_INDEX;
|
||||
op->return_cache = member_type;
|
||||
@@ -3662,7 +3656,8 @@ Error ShaderLanguage::_parse_shader(const Map<StringName, FunctionInfo> &p_funct
|
||||
_set_error("void datatype not allowed here");
|
||||
return ERR_PARSE_ERROR;
|
||||
}
|
||||
if (!uniform && type < TYPE_FLOAT && type > TYPE_VEC4) { // FIXME: always false! should it be || instead?
|
||||
|
||||
if (!uniform && (type < TYPE_FLOAT || type > TYPE_VEC4)) {
|
||||
_set_error("Invalid type for varying, only float,vec2,vec3,vec4 allowed.");
|
||||
return ERR_PARSE_ERROR;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user