diff options
author | Campbell Barton <ideasman42@gmail.com> | 2020-05-13 09:01:26 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2020-05-13 09:01:26 +0300 |
commit | 0e0ebdb65c978a22db2bdcc71dd058ec89cac932 (patch) | |
tree | 09df8f1ab80c84025a3e07117cf4b58a3b8a1a26 /source/blender/makesrna/intern/rna_wm.c | |
parent | 75d0287cee1aae1a94e46d3fb90379ce016eda8c (diff) |
Fix crash accessing the clipboard
The clipboard can change between checking it's length and
copying into the allocated buffer.
Move this from RNA to the C/Python API.
Diffstat (limited to 'source/blender/makesrna/intern/rna_wm.c')
-rw-r--r-- | source/blender/makesrna/intern/rna_wm.c | 38 |
1 files changed, 0 insertions, 38 deletions
diff --git a/source/blender/makesrna/intern/rna_wm.c b/source/blender/makesrna/intern/rna_wm.c index 151c772f533..deeb4f5789c 100644 --- a/source/blender/makesrna/intern/rna_wm.c +++ b/source/blender/makesrna/intern/rna_wm.c @@ -1233,39 +1233,6 @@ static bool rna_KeyMapItem_userdefined_get(PointerRNA *ptr) return kmi->id < 0; } -static void rna_wmClipboard_get(PointerRNA *UNUSED(ptr), char *value) -{ - char *pbuf; - int pbuf_len; - - pbuf = WM_clipboard_text_get(false, &pbuf_len); - if (pbuf) { - memcpy(value, pbuf, pbuf_len + 1); - MEM_freeN(pbuf); - } - else { - value[0] = '\0'; - } -} - -static int rna_wmClipboard_length(PointerRNA *UNUSED(ptr)) -{ - char *pbuf; - int pbuf_len; - - pbuf = WM_clipboard_text_get(false, &pbuf_len); - if (pbuf) { - MEM_freeN(pbuf); - } - - return pbuf_len; -} - -static void rna_wmClipboard_set(PointerRNA *UNUSED(ptr), const char *value) -{ - WM_clipboard_text_set((void *)value, false); -} - static PointerRNA rna_WindowManager_xr_session_state_get(PointerRNA *ptr) { wmWindowManager *wm = ptr->data; @@ -2493,11 +2460,6 @@ static void rna_def_windowmanager(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Key Configurations", "Registered key configurations"); rna_def_wm_keyconfigs(brna, prop); - prop = RNA_def_property(srna, "clipboard", PROP_STRING, PROP_NONE); - RNA_def_property_string_funcs( - prop, "rna_wmClipboard_get", "rna_wmClipboard_length", "rna_wmClipboard_set"); - RNA_def_property_ui_text(prop, "Text Clipboard", ""); - prop = RNA_def_property(srna, "xr_session_settings", PROP_POINTER, PROP_NONE); RNA_def_property_pointer_sdna(prop, NULL, "xr.session_settings"); RNA_def_property_flag(prop, PROP_NEVER_NULL); |