Skip to content

Commit 66a3a94

Browse files
committed
Fix error when loading SVG imported as Image
1 parent 30e7178 commit 66a3a94

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

modules/svg/image_loader_svg.cpp

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -173,9 +173,17 @@ void ImageLoaderSVG::get_recognized_extensions(List<String> *p_extensions) const
173173
}
174174

175175
Error ImageLoaderSVG::load_image(Ref<Image> p_image, Ref<FileAccess> p_fileaccess, BitField<ImageFormatLoader::LoaderFlags> p_flags, float p_scale) {
176-
String svg = p_fileaccess->get_as_utf8_string();
176+
const uint64_t len = p_fileaccess->get_length() - p_fileaccess->get_position();
177+
Vector<uint8_t> buffer;
178+
buffer.resize(len);
179+
p_fileaccess->get_buffer(buffer.ptrw(), buffer.size());
180+
181+
String svg;
182+
Error err = svg.parse_utf8((const char *)buffer.ptr(), buffer.size());
183+
if (err != OK) {
184+
return err;
185+
}
177186

178-
Error err;
179187
if (p_flags & FLAG_CONVERT_COLORS) {
180188
err = create_image_from_string(p_image, svg, p_scale, false, forced_color_map);
181189
} else {

0 commit comments

Comments
 (0)