Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulian Eisel <julian@blender.org>2021-07-30 16:54:54 +0300
committerJulian Eisel <julian@blender.org>2021-07-30 16:54:54 +0300
commiteb2a6f454bd07442d16001e25dcf407d4e8f7533 (patch)
tree9ad9b0edcd4e6f0522dd0fb2a847108a169d8322 /source/blender/editors
parent4647ffd918225452f25bd865a386e292ba7ebac8 (diff)
Fix T90318: Dragging asset while Asset Browser is still loading crashes
This partially reverts cb0b017d8f51: We can't store the asset handle in the drag data, because the file pointer it wraps may be freed as the Asset Browser generates its file list.
Diffstat (limited to 'source/blender/editors')
-rw-r--r--source/blender/editors/interface/interface.c7
-rw-r--r--source/blender/editors/space_view3d/space_view3d.c3
2 files changed, 5 insertions, 5 deletions
diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c
index 959716a5247..a2b25aed582 100644
--- a/source/blender/editors/interface/interface.c
+++ b/source/blender/editors/interface/interface.c
@@ -57,6 +57,8 @@
#include "BKE_screen.h"
#include "BKE_unit.h"
+#include "ED_asset.h"
+
#include "GPU_matrix.h"
#include "GPU_state.h"
@@ -6189,10 +6191,9 @@ void UI_but_drag_set_asset(uiBut *but,
{
wmDragAsset *asset_drag = MEM_mallocN(sizeof(*asset_drag), "wmDragAsset");
- asset_drag->asset_handle = MEM_mallocN(sizeof(asset_drag->asset_handle),
- "wmDragAsset asset handle");
- *asset_drag->asset_handle = *asset;
+ BLI_strncpy(asset_drag->name, ED_asset_handle_get_name(asset), sizeof(asset_drag->name));
asset_drag->path = path;
+ asset_drag->id_type = ED_asset_handle_get_id_type(asset);
asset_drag->import_type = import_type;
but->dragtype = WM_DRAG_ASSET;
diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c
index 5baa12f7367..54f10e259f9 100644
--- a/source/blender/editors/space_view3d/space_view3d.c
+++ b/source/blender/editors/space_view3d/space_view3d.c
@@ -53,7 +53,6 @@
#include "BKE_screen.h"
#include "BKE_workspace.h"
-#include "ED_asset.h"
#include "ED_render.h"
#include "ED_screen.h"
#include "ED_space_api.h"
@@ -496,7 +495,7 @@ static ID_Type view3d_drop_id_in_main_region_poll_get_id_type(bContext *C,
wmDragAsset *asset_drag = WM_drag_get_asset_data(drag, 0);
if (asset_drag) {
- return ED_asset_handle_get_id_type(asset_drag->asset_handle);
+ return asset_drag->id_type;
}
return 0;