Fix occasional crash when downloading assets from the Asset Library

This is caused by GitHub not publishing a Content-Length header in
all cases (it only does so if the file was requested recently),
which in turn made `String.humanize_size()` try to humanize a size of
-1 byte (as returned by HTTPRequest when no Content-Length
is contained in the response).
This crashed the editor due to a division by zero.

This closes #21200.
This commit is contained in:
Hugo Locurcio 2018-08-20 20:21:56 +02:00
parent c1bd768ca2
commit dd4fe8588b
No known key found for this signature in database
GPG Key ID: 39E8F8BE30B0A49C
1 changed files with 10 additions and 1 deletions

View File

@ -421,7 +421,16 @@ void EditorAssetLibraryItemDownload::_notification(int p_what) {
int cstatus = download->get_http_client_status();
if (cstatus == HTTPClient::STATUS_BODY) {
status->set_text(vformat(TTR("Downloading (%s / %s)..."), String::humanize_size(download->get_downloaded_bytes()), String::humanize_size(download->get_body_size())));
if (download->get_body_size() > 0) {
status->set_text(
vformat(
TTR("Downloading (%s / %s)..."),
String::humanize_size(download->get_downloaded_bytes()),
String::humanize_size(download->get_body_size())));
} else {
// Total file size is unknown, so it cannot be displayed
status->set_text(TTR("Downloading..."));
}
}
if (cstatus != prev_status) {