3.8.4 spine wasm 内存泄漏问题 setSlotTexture(slotName, tex2d, true)

  • Creator 版本: 3.8.X

  • 目标平台:chrome

  • 重现方式:
    @property({ type: sp.Skeleton })

    skel: sp.Skeleton = null!;

    @property({type:Texture2D})

    t1:Texture2D

    @property({type:Texture2D})

    t2:Texture2D

    b=false

    update(deltaTime: number) {

      this.skel.clearTracks()
    
      this.skel.timeScale =0
    
      this.skel.setAnimation(0, 'win', false)
    
      for (let index = 0; index <100; index++) {
    
          if(this.b)
    
              this.skel.setSlotTexture('symbol',this.t1,true)
    
          else
    
              this.skel.setSlotTexture('symbol',this.t2,true)
    
      }
      this.b=!this.b
    

    }

  • 首个报错: 内存泄漏
    Uncaught RuntimeError: memory access out of bounds
    at 00157936:0x3103d
    at 00157936:0x1892
    at ClassHandle.updateRenderData (spine.wasm.js:8:30290)
    at Skeleton.updateRenderData (skeleton.ts:1122:43)
    at realTimeTraverse (simple.ts:145:24)
    at updateComponentRenderData (simple.ts:135:9)
    at Object.updateRenderData (simple.ts:121:13)
    at Skeleton.updateRenderer (ui-renderer.ts:405:29)
    at UIRendererManager.updateAllDirtyRenderers (ui-renderer-manager.ts:70:31)
    at Director.tick (director.ts:681:31)

  • 之前哪个版本是正常的:3.7.X spine js版本都正常

  • 重现概率: 100%

setSlotTexture功能也有问题,spine装配模式与动画模式中使用的附件一致才生效
有时候使用的图片自动合批了也会出错

顶顶顶顶顶顶