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:
Alexander Gorshenev
2018-06-05 15:32:40 +03:00
committed by alexander-gorshenev
parent afc7d1dd9e
commit eec6f399fb
2 changed files with 8 additions and 13 deletions
+8 -9
View File
@@ -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
-4
View File
@@ -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);