Parcourir la source

Fix invalid memory usage when modifying locked image

Haoyu Qiu il y a 4 ans
Parent
commit
0a17e96ab2
1 fichiers modifiés avec 2 ajouts et 1 suppressions
  1. 2 1
      core/image.cpp

+ 2 - 1
core/image.cpp

@@ -1311,8 +1311,8 @@ static void _generate_po2_mipmap(const Component *p_src, Component *p_dst, uint3
 }
 }
 
 
 void Image::expand_x2_hq2x() {
 void Image::expand_x2_hq2x() {
-
 	ERR_FAIL_COND(!_can_modify(format));
 	ERR_FAIL_COND(!_can_modify(format));
+	ERR_FAIL_COND_MSG(write_lock.ptr(), "Cannot modify image when it is locked.");
 
 
 	bool used_mipmaps = has_mipmaps();
 	bool used_mipmaps = has_mipmaps();
 	if (used_mipmaps) {
 	if (used_mipmaps) {
@@ -2915,6 +2915,7 @@ Ref<Image> Image::rgbe_to_srgb() {
 
 
 void Image::bumpmap_to_normalmap(float bump_scale) {
 void Image::bumpmap_to_normalmap(float bump_scale) {
 	ERR_FAIL_COND(!_can_modify(format));
 	ERR_FAIL_COND(!_can_modify(format));
+	ERR_FAIL_COND_MSG(write_lock.ptr(), "Cannot modify image when it is locked.");
 	convert(Image::FORMAT_RF);
 	convert(Image::FORMAT_RF);
 
 
 	PoolVector<uint8_t> result_image; //rgba output
 	PoolVector<uint8_t> result_image; //rgba output