Ephoto: Fix crash uploading edited images
This commit is contained in:
parent
545fc6c310
commit
8c4f8c2696
|
@ -1265,7 +1265,7 @@ _upload_image_confirm(void *data, Evas_Object *obj EINA_UNUSED, void *event_info
|
||||||
Evas_Object *ppopup = data;
|
Evas_Object *ppopup = data;
|
||||||
Evas_Object *popup, *box, *label, *pb;
|
Evas_Object *popup, *box, *label, *pb;
|
||||||
Ephoto_Single_Browser *sb = evas_object_data_get(ppopup, "single_browser");
|
Ephoto_Single_Browser *sb = evas_object_data_get(ppopup, "single_browser");
|
||||||
char buf[PATH_MAX];
|
char buf[PATH_MAX], tmp_path[PATH_MAX];
|
||||||
FILE *f;
|
FILE *f;
|
||||||
unsigned char *fdata;
|
unsigned char *fdata;
|
||||||
int fsize;
|
int fsize;
|
||||||
|
@ -1302,7 +1302,26 @@ _upload_image_confirm(void *data, Evas_Object *obj EINA_UNUSED, void *event_info
|
||||||
elm_object_part_content_set(popup, "default", box);
|
elm_object_part_content_set(popup, "default", box);
|
||||||
evas_object_show(popup);
|
evas_object_show(popup);
|
||||||
|
|
||||||
f = fopen(sb->entry->path, "rb");
|
if (sb->edited_image_data)
|
||||||
|
{
|
||||||
|
const char *ext = strrchr(sb->entry->path, '.');
|
||||||
|
Ephoto_Viewer *v = evas_object_data_get(sb->viewer, "viewer");
|
||||||
|
Eina_Bool success;
|
||||||
|
|
||||||
|
ext++;
|
||||||
|
snprintf(tmp_path, PATH_MAX, "%s/.config/ephoto/tmp.%s", getenv("HOME"), ext);
|
||||||
|
success = evas_object_image_save(elm_image_object_get(v->image), tmp_path, NULL, NULL);
|
||||||
|
if (!success)
|
||||||
|
{
|
||||||
|
_failed_save(sb);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
f = fopen(tmp_path, "rb");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
f = fopen(sb->entry->path, "rb");
|
||||||
|
}
|
||||||
fseek(f, 0, SEEK_END);
|
fseek(f, 0, SEEK_END);
|
||||||
fsize = ftell(f);
|
fsize = ftell(f);
|
||||||
rewind(f);
|
rewind(f);
|
||||||
|
@ -1310,6 +1329,9 @@ _upload_image_confirm(void *data, Evas_Object *obj EINA_UNUSED, void *event_info
|
||||||
fread(fdata, fsize, 1, f);
|
fread(fdata, fsize, 1, f);
|
||||||
fclose(f);
|
fclose(f);
|
||||||
|
|
||||||
|
if (sb->edited_image_data && tmp_path)
|
||||||
|
ecore_file_unlink(tmp_path);
|
||||||
|
|
||||||
snprintf(buf, PATH_MAX, "image=%u", fdata);
|
snprintf(buf, PATH_MAX, "image=%u", fdata);
|
||||||
|
|
||||||
sb->handlers = eina_list_append
|
sb->handlers = eina_list_append
|
||||||
|
|
Loading…
Reference in New Issue