From 087b2688db22a1f5b03c3982dfa77ef50d5a2824 Mon Sep 17 00:00:00 2001 From: Mario Zechner Date: Wed, 11 Oct 2023 11:44:36 +0200 Subject: [PATCH] [c] Closes #2394, double free of sequences in mesh attachments. --- spine-c/spine-c/src/spine/MeshAttachment.c | 1 - spine-ts/spine-webgl/src/SpineCanvas.ts | 4 ++-- .../SpineEditorPlugin/Private/SpineEditorPlugin.cpp | 12 +++++------- 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/spine-c/spine-c/src/spine/MeshAttachment.c b/spine-c/spine-c/src/spine/MeshAttachment.c index 3657900ad..e62c074c2 100644 --- a/spine-c/spine-c/src/spine/MeshAttachment.c +++ b/spine-c/spine-c/src/spine/MeshAttachment.c @@ -43,7 +43,6 @@ void _spMeshAttachment_dispose(spAttachment *attachment) { FREE(self->edges); } else _spAttachment_deinit(attachment); - if (self->sequence) FREE(self->sequence); FREE(self); } diff --git a/spine-ts/spine-webgl/src/SpineCanvas.ts b/spine-ts/spine-webgl/src/SpineCanvas.ts index ec8dc6cfa..b200ef893 100644 --- a/spine-ts/spine-webgl/src/SpineCanvas.ts +++ b/spine-ts/spine-webgl/src/SpineCanvas.ts @@ -87,7 +87,7 @@ export class SpineCanvas { update: () => { }, render: () => { }, error: () => { }, - dispose: () => { }, + dispose: () => { }, } if (config.webglConfig) config.webglConfig = { alpha: true }; @@ -131,7 +131,7 @@ export class SpineCanvas { } /** Disposes the app, so the update() and render() functions are no longer called. Calls the dispose() callback.*/ - dispose() { + dispose () { if (this.config.app.dispose) this.config.app.dispose(this); this.disposed = true; } diff --git a/spine-ue4/Plugins/SpinePlugin/Source/SpineEditorPlugin/Private/SpineEditorPlugin.cpp b/spine-ue4/Plugins/SpinePlugin/Source/SpineEditorPlugin/Private/SpineEditorPlugin.cpp index c95f82d59..3945076c6 100644 --- a/spine-ue4/Plugins/SpinePlugin/Source/SpineEditorPlugin/Private/SpineEditorPlugin.cpp +++ b/spine-ue4/Plugins/SpinePlugin/Source/SpineEditorPlugin/Private/SpineEditorPlugin.cpp @@ -31,20 +31,18 @@ #include "AssetTypeActions_Base.h" #include "SpineAtlasAsset.h" #include "SpineSkeletonDataAsset.h" - -class FSpineAtlasAssetTypeActions : public FAssetTypeActions_Base -{ + +class FSpineAtlasAssetTypeActions : public FAssetTypeActions_Base { public: - UClass* GetSupportedClass() const override { return USpineAtlasAsset::StaticClass(); }; + UClass *GetSupportedClass() const override { return USpineAtlasAsset::StaticClass(); }; FText GetName() const override { return INVTEXT("Spine atlas asset"); }; FColor GetTypeColor() const override { return FColor::Red; }; uint32 GetCategories() override { return EAssetTypeCategories::Misc; }; }; -class FSpineSkeletonDataAssetTypeActions : public FAssetTypeActions_Base -{ +class FSpineSkeletonDataAssetTypeActions : public FAssetTypeActions_Base { public: - UClass* GetSupportedClass() const override { return USpineSkeletonDataAsset::StaticClass(); }; + UClass *GetSupportedClass() const override { return USpineSkeletonDataAsset::StaticClass(); }; FText GetName() const override { return INVTEXT("Spine data asset"); }; FColor GetTypeColor() const override { return FColor::Red; }; uint32 GetCategories() override { return EAssetTypeCategories::Misc; };