You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-05 12:10:55 +00:00
Mono/C#: WebAssembly support
This commit is contained in:
@@ -50,8 +50,10 @@
|
||||
|
||||
#include "editor/editor_internal_calls.h"
|
||||
#include "godotsharp_dirs.h"
|
||||
#include "mono_gd/gd_mono_cache.h"
|
||||
#include "mono_gd/gd_mono_class.h"
|
||||
#include "mono_gd/gd_mono_marshal.h"
|
||||
#include "mono_gd/gd_mono_utils.h"
|
||||
#include "signal_awaiter_utils.h"
|
||||
#include "utils/macros.h"
|
||||
#include "utils/mutex_utils.h"
|
||||
@@ -545,7 +547,7 @@ Vector<ScriptLanguage::StackInfo> CSharpLanguage::debug_get_current_stack_info()
|
||||
#ifdef DEBUG_ENABLED
|
||||
_TLS_RECURSION_GUARD_V_(Vector<StackInfo>());
|
||||
|
||||
if (!gdmono->is_runtime_initialized() || !GDMono::get_singleton()->get_core_api_assembly() || !GDMonoUtils::mono_cache.corlib_cache_updated)
|
||||
if (!gdmono->is_runtime_initialized() || !GDMono::get_singleton()->get_core_api_assembly() || !GDMonoCache::cached_data.corlib_cache_updated)
|
||||
return Vector<StackInfo>();
|
||||
|
||||
MonoObject *stack_trace = mono_object_new(mono_domain_get(), CACHED_CLASS(System_Diagnostics_StackTrace)->get_mono_ptr());
|
||||
@@ -571,7 +573,7 @@ Vector<ScriptLanguage::StackInfo> CSharpLanguage::stack_trace_get_info(MonoObjec
|
||||
|
||||
MonoException *exc = NULL;
|
||||
|
||||
MonoArray *frames = invoke_method_thunk(CACHED_METHOD_THUNK(System_Diagnostics_StackTrace, GetFrames), p_stack_trace, &exc);
|
||||
MonoArray *frames = CACHED_METHOD_THUNK(System_Diagnostics_StackTrace, GetFrames).invoke(p_stack_trace, &exc);
|
||||
|
||||
if (exc) {
|
||||
GDMonoUtils::debug_print_unhandled_exception(exc);
|
||||
@@ -583,8 +585,6 @@ Vector<ScriptLanguage::StackInfo> CSharpLanguage::stack_trace_get_info(MonoObjec
|
||||
if (frame_count <= 0)
|
||||
return Vector<StackInfo>();
|
||||
|
||||
GDMonoUtils::DebugUtils_StackFrameInfo get_sf_info = CACHED_METHOD_THUNK(DebuggingUtils, GetStackFrameInfo);
|
||||
|
||||
Vector<StackInfo> si;
|
||||
si.resize(frame_count);
|
||||
|
||||
@@ -595,7 +595,7 @@ Vector<ScriptLanguage::StackInfo> CSharpLanguage::stack_trace_get_info(MonoObjec
|
||||
MonoString *file_name;
|
||||
int file_line_num;
|
||||
MonoString *method_decl;
|
||||
invoke_method_thunk(get_sf_info, frame, &file_name, &file_line_num, &method_decl, &exc);
|
||||
CACHED_METHOD_THUNK(DebuggingUtils, GetStackFrameInfo).invoke(frame, &file_name, &file_line_num, &method_decl, &exc);
|
||||
|
||||
if (exc) {
|
||||
GDMonoUtils::debug_print_unhandled_exception(exc);
|
||||
@@ -618,14 +618,14 @@ Vector<ScriptLanguage::StackInfo> CSharpLanguage::stack_trace_get_info(MonoObjec
|
||||
void CSharpLanguage::frame() {
|
||||
|
||||
if (gdmono && gdmono->is_runtime_initialized() && gdmono->get_core_api_assembly() != NULL) {
|
||||
const Ref<MonoGCHandle> &task_scheduler_handle = GDMonoUtils::mono_cache.task_scheduler_handle;
|
||||
const Ref<MonoGCHandle> &task_scheduler_handle = GDMonoCache::cached_data.task_scheduler_handle;
|
||||
|
||||
if (task_scheduler_handle.is_valid()) {
|
||||
MonoObject *task_scheduler = task_scheduler_handle->get_target();
|
||||
|
||||
if (task_scheduler) {
|
||||
MonoException *exc = NULL;
|
||||
invoke_method_thunk(CACHED_METHOD_THUNK(GodotTaskScheduler, Activate), task_scheduler, &exc);
|
||||
CACHED_METHOD_THUNK(GodotTaskScheduler, Activate).invoke(task_scheduler, &exc);
|
||||
|
||||
if (exc) {
|
||||
GDMonoUtils::debug_unhandled_exception(exc);
|
||||
@@ -1079,7 +1079,7 @@ bool CSharpLanguage::overrides_external_editor() {
|
||||
void CSharpLanguage::thread_enter() {
|
||||
|
||||
#if 0
|
||||
if (mono->is_runtime_initialized()) {
|
||||
if (gdmono->is_runtime_initialized()) {
|
||||
GDMonoUtils::attach_current_thread();
|
||||
}
|
||||
#endif
|
||||
@@ -1088,7 +1088,7 @@ void CSharpLanguage::thread_enter() {
|
||||
void CSharpLanguage::thread_exit() {
|
||||
|
||||
#if 0
|
||||
if (mono->is_runtime_initialized()) {
|
||||
if (gdmono->is_runtime_initialized()) {
|
||||
GDMonoUtils::detach_current_thread();
|
||||
}
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user