EpicSkookumScript / EpicSkookumScript/SkookumScript-Plugin
Assertion failed: !Obj->HasAnyFlags(RF_NeedLoad|RF_NeedPostLoad|RF_ClassDefaultObject) || bIsOwnedByCDO
- 主要语言
- C++
- 星标
- 138
- 派生
- 22
- PR 合并指标
- 30 天内没有已合并 PR
描述
**UE4 Version**
4.18-Current
**SkookumScript Version**
4.18-Current
**Describe the bug**
Once the bug hits, you will get this stack trace when starting the editor.
```
0x00000000676E47F9 UE4Editor-Core.dll!FDebug::AssertFailed() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\core\private\misc\assertionmacros.cpp:414]
0x000000006BEBE73A UE4Editor-CoreUObject.dll!StaticAllocateObject() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:2365]
0x000000006BEC0191 UE4Editor-CoreUObject.dll!StaticConstructObject_Internal() [d:\build\++ue4+release-4.18+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:3145]
0x000000004BCDAE3A UE4Editor-SkookumScriptRuntime.dll!SkUEReflectionManager::add_instance_property_to_class() [d:\build\++portal+dev-marketplace+full\sync\localbuilds\plugintemp\hostproject\plugins\skookumscript\source\skookumscriptruntime\private\bindings\skuereflectionmanager.cpp:788]
0x000000004BE4DFA6 UE4Editor-SkookumScriptRuntime.dll!SkUEReflectionManager::sync_all_to_ue() [d:\build\++portal+dev-marketplace+full\sync\localbuilds\plugintemp\hostproject\plugins\skookumscript\source\skookumscriptruntime\private\bindings\skuereflectionmanager.cpp:723]
0x000000004BCCF8EF UE4Editor-SkookumScriptRuntime.dll!FSkookumScriptRuntime::OnPreCompile() [d:\build\++portal+dev-marketplace+full\sync\localbuilds\plugintemp\hostproject\plugins\skookumscript\source\skookumscriptruntime\private\skookumscriptruntime.cpp:1466]
0x000000004BCC97D6 UE4Editor-SkookumScriptRuntime.dll!TBaseRawMethodDelegateInstance<0,FSkookumScriptRuntime,void __cdecl(void)>::ExecuteIfSafe() [d:\rocketsync\4.18.0-3709383+++ue4+release-4.18\working\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:648]
```
**To Reproduce**
I still have not been able to nail down specific reproduction steps as this is one of those bugs that goes away as soon as you try to debug it. The times when this has happened, I was doing a workflow where I was adding/deleting an sk constructor by moving files into and out of the scripts folder and then reloading my project. This may or may not be a factor.
贡献指南
调研方向
从 skuereflectionmanager.cpp:788 的 SkUEReflectionManager::add_instance_property_to_class() 开始,然后追踪报告行中的 sync_all_to_ue() 和 FSkookumScriptRuntime::OnPreCompile()。调查涉及新增或删除 Skookum 构造函数的编辑器启动和脚本重新加载工作流;完成的标准是 RF_NeedLoad/RF_NeedPostLoad/RF_ClassDefaultObject assertion 不再发生,并且有一个可复现的回归案例。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- cpp, unreal-engine
- 领域
- game-dev
- Issue 类型
- 缺陷
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 停滞
- 描述清晰度
- 需要澄清
- 新手友好度
- 25/100