Remove obsolete runtime memory initialization code from js.
Handle everything in runtime. In addition the fix fixes global ctros issue in the browser.
This commit is contained in:
committed by
alexander-gorshenev
parent
afc7d1dd9e
commit
eec6f399fb
@@ -44,8 +44,7 @@ extern "C" KInt Konan_run_start(int argc, const char** argv) {
|
||||
return Konan_start(args.obj());
|
||||
}
|
||||
|
||||
extern "C" RUNTIME_USED int Konan_main(int argc, const char** argv) {
|
||||
|
||||
extern "C" RUNTIME_USED int Init_and_run_start(int argc, const char** argv, int memoryDeInit) {
|
||||
#ifdef KONAN_NO_CTORS_SECTION
|
||||
extern void _Konan_constructors(void);
|
||||
_Konan_constructors();
|
||||
@@ -55,28 +54,28 @@ extern "C" RUNTIME_USED int Konan_main(int argc, const char** argv) {
|
||||
|
||||
KInt exitStatus = Konan_run_start(argc, argv);
|
||||
|
||||
Kotlin_deinitRuntimeIfNeeded();
|
||||
if (memoryDeInit) Kotlin_deinitRuntimeIfNeeded();
|
||||
|
||||
return exitStatus;
|
||||
}
|
||||
|
||||
extern "C" RUNTIME_USED int Konan_main(int argc, const char** argv) {
|
||||
return Init_and_run_start(argc, argv, 1);
|
||||
}
|
||||
|
||||
#ifdef KONAN_WASM
|
||||
// Before we pass control to Konan_main, we need to obtain argv elements
|
||||
// from the javascript world.
|
||||
extern "C" int Konan_js_arg_size(int index);
|
||||
extern "C" int Konan_js_fetch_arg(int index, char* ptr);
|
||||
|
||||
extern "C" RUNTIME_USED int Konan_js_main(int argc, int memoryInit) {
|
||||
extern "C" RUNTIME_USED int Konan_js_main(int argc, int memoryDeInit) {
|
||||
char** argv = (char**)konan::calloc(1, argc);
|
||||
for (int i = 0; i< argc; ++i) {
|
||||
argv[i] = (char*)konan::calloc(1, Konan_js_arg_size(i));
|
||||
Konan_js_fetch_arg(i, argv[i]);
|
||||
}
|
||||
if (memoryInit) {
|
||||
return Konan_main(argc, (const char**)argv);
|
||||
} else {
|
||||
return Konan_run_start(argc, (const char**)argv);
|
||||
}
|
||||
return Init_and_run_start(argc, (const char**)argv, memoryDeInit);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -212,11 +212,7 @@ function invokeModule(inst, args) {
|
||||
var exit_status = 0;
|
||||
|
||||
try {
|
||||
if (isBrowser()) {
|
||||
instance.exports.Kotlin_initRuntimeIfNeeded();
|
||||
}
|
||||
exit_status = instance.exports.Konan_js_main(args.length, isBrowser() ? 0 : 1);
|
||||
// TODO: so when should we deinit runtime?
|
||||
} catch (e) {
|
||||
runtime.print("Exception executing entry point: " + e);
|
||||
runtime.print(e.stack);
|
||||
|
||||
Reference in New Issue
Block a user