You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-22 15:06:45 +00:00
[3.x] Fix shader compiler asan out of bounds
(cherry picked from commit aa0b91ca52)
This commit is contained in:
@@ -926,6 +926,8 @@ String ShaderLanguage::get_datatype_name(DataType p_type) {
|
||||
return "samplerExternalOES";
|
||||
case TYPE_STRUCT:
|
||||
return "struct";
|
||||
default: {
|
||||
}
|
||||
}
|
||||
|
||||
return "";
|
||||
@@ -2701,6 +2703,8 @@ Variant ShaderLanguage::constant_value_to_variant(const Vector<ShaderLanguage::C
|
||||
break;
|
||||
case ShaderLanguage::TYPE_VOID:
|
||||
break;
|
||||
default: {
|
||||
}
|
||||
}
|
||||
return value;
|
||||
}
|
||||
@@ -2786,8 +2790,18 @@ ShaderLanguage::DataType ShaderLanguage::get_scalar_type(DataType p_type) {
|
||||
TYPE_INT,
|
||||
TYPE_UINT,
|
||||
TYPE_FLOAT,
|
||||
TYPE_INT,
|
||||
TYPE_UINT,
|
||||
TYPE_FLOAT,
|
||||
TYPE_INT,
|
||||
TYPE_UINT,
|
||||
TYPE_FLOAT,
|
||||
TYPE_FLOAT,
|
||||
TYPE_VOID,
|
||||
};
|
||||
|
||||
static_assert(sizeof(scalar_types) / sizeof(*scalar_types) == TYPE_MAX, "get_scalar_type must be updated if DataType is updated");
|
||||
|
||||
return scalar_types[p_type];
|
||||
}
|
||||
|
||||
@@ -2817,8 +2831,18 @@ int ShaderLanguage::get_cardinality(DataType p_type) {
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
};
|
||||
|
||||
static_assert(sizeof(cardinality_table) / sizeof(*cardinality_table) == TYPE_MAX, "get_cardinality must be updated if DataType is updated");
|
||||
|
||||
return cardinality_table[p_type];
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user