OMG THE HEAP OVERFLOW HAUNTS ME
This commit is contained in:
6463
devel/Vosklet.js
6463
devel/Vosklet.js
File diff suppressed because one or more lines are too long
17891
devel/Vosklet.js.symbols
17891
devel/Vosklet.js.symbols
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,4 @@
|
|||||||
# Build the js file into this directory, debug mode or release mode
|
# Build the js file into this directory, debug mode or MODE mode
|
||||||
|
|
||||||
cd .. &&
|
cd .. &&
|
||||||
SRC=$(realpath src) &&
|
SRC=$(realpath src) &&
|
||||||
@@ -28,9 +28,9 @@ fi
|
|||||||
. $EMSDK/emsdk_env.sh &&
|
. $EMSDK/emsdk_env.sh &&
|
||||||
|
|
||||||
cd $SRC &&
|
cd $SRC &&
|
||||||
RELEASE=0 &&
|
MODE=0 &&
|
||||||
if [ $RELEASE = 0 ]; then
|
if [ $MODE = 0 ]; then
|
||||||
em++ -O0 global.cc genericModel.cc recognizer.cc bindings.cc -sWASMFS -sWASM_BIGINT -sSINGLE_FILE -sGZIP_EMBEDDINGS -sMODULARIZE -sEMBIND_STD_STRING_IS_UTF8 -sPTHREAD_POOL_DELAY_LOAD -sSAFE_HEAP_LOG -sSAFE_HEAP -sRUNTIME_DEBUG -sSTACK_OVERFLOW_CHECK=2 -sTEXTDECODER=2 -sPTHREAD_POOL_SIZE_STRICT=2 -sASSERTIONS=2 -sINITIAL_MEMORY=$MAX_MEMORY -sPTHREAD_POOL_SIZE=$MAX_THREADS -sPOLYFILL=0 -sSUPPORT_LONGJMP=0 -sINVOKE_RUN=0 -sEXPORTED_FUNCTIONS=_malloc -sEXPORT_NAME=loadVosklet -sMALLOC=emmalloc -sEXPORTED_RUNTIME_METHODS=UTF8ToString,stringToUTF8OnStack -sENVIRONMENT=web,worker -I. -I$LIBARCHIVE/include -I$VOSK/src -L$LIBARCHIVE/lib -larchive -L$KALDI/src -l:online2/kaldi-online2.a -l:decoder/kaldi-decoder.a -l:ivector/kaldi-ivector.a -l:gmm/kaldi-gmm.a -l:tree/kaldi-tree.a -l:feat/kaldi-feat.a -l:cudamatrix/kaldi-cudamatrix.a -l:lat/kaldi-lat.a -l:lm/kaldi-lm.a -l:rnnlm/kaldi-rnnlm.a -l:hmm/kaldi-hmm.a -l:nnet3/kaldi-nnet3.a -l:transform/kaldi-transform.a -l:matrix/kaldi-matrix.a -l:fstext/kaldi-fstext.a -l:util/kaldi-util.a -l:base/kaldi-base.a -L$OPENFST/lib -l:libfst.a -l:libfstngram.a -L$CLAPACK_WASM -l:CBLAS/lib/cblas.a -l:CLAPACK-3.2.1/lapack.a -l:CLAPACK-3.2.1/libcblaswr.a -l:f2c_BLAS-3.8.0/blas.a -l:libf2c/libf2c.a -L$VOSK/src -l:vosk.a -lopfs.js -lembind -pthread -flto -msimd128 --emit-symbol-map --embind-emit-tsd Vosklet.d.ts --pre-js pre.js -fsanitize=undefined -o ../devel/Vosklet.js
|
em++ -O0 global.cc genericModel.cc recognizer.cc bindings.cc -sWASMFS -sWASM_BIGINT -sSINGLE_FILE -sGZIP_EMBEDDINGS -sMODULARIZE -sEMBIND_STD_STRING_IS_UTF8 -sPTHREAD_POOL_DELAY_LOAD -sRUNTIME_DEBUG -sSTACK_OVERFLOW_CHECK=2 -sTEXTDECODER=2 -sPTHREAD_POOL_SIZE_STRICT=2 -sASSERTIONS=2 -sDISABLE_EXCEPTION_CATCHING=0 -sINITIAL_MEMORY=$MAX_MEMORY -sPTHREAD_POOL_SIZE=$MAX_THREADS -sPOLYFILL=0 -sSUPPORT_LONGJMP=0 -sEXPORTED_FUNCTIONS=_malloc -sEXPORT_NAME=loadVosklet -sMALLOC=emmalloc -sEXPORTED_RUNTIME_METHODS=UTF8ToString,stringToUTF8OnStack -sENVIRONMENT=web,worker -I. -I$LIBARCHIVE/include -I$VOSK/src -L$LIBARCHIVE/lib -larchive -L$KALDI/src -l:online2/kaldi-online2.a -l:decoder/kaldi-decoder.a -l:ivector/kaldi-ivector.a -l:gmm/kaldi-gmm.a -l:tree/kaldi-tree.a -l:feat/kaldi-feat.a -l:cudamatrix/kaldi-cudamatrix.a -l:lat/kaldi-lat.a -l:lm/kaldi-lm.a -l:rnnlm/kaldi-rnnlm.a -l:hmm/kaldi-hmm.a -l:nnet3/kaldi-nnet3.a -l:transform/kaldi-transform.a -l:matrix/kaldi-matrix.a -l:fstext/kaldi-fstext.a -l:util/kaldi-util.a -l:base/kaldi-base.a -L$OPENFST/lib -l:libfst.a -l:libfstngram.a -L$CLAPACK_WASM -l:CBLAS/lib/cblas.a -l:CLAPACK-3.2.1/lapack.a -l:CLAPACK-3.2.1/libcblaswr.a -l:f2c_BLAS-3.8.0/blas.a -l:libf2c/libf2c.a -L$VOSK/src -l:vosk.a -lopfs.js -lembind -pthread -flto -msimd128 --emit-symbol-map --embind-emit-tsd Vosklet.d.ts --pre-js pre.js -fsanitize=undefined -o ../devel/Vosklet.js
|
||||||
else
|
else
|
||||||
em++ -O3 global.cc genericModel.cc recognizer.cc bindings.cc -sWASMFS -sWASM_BIGINT -sSINGLE_FILE -sGZIP_EMBEDDINGS -sMODULARIZE -sEMBIND_STD_STRING_IS_UTF8 -sPTHREAD_POOL_DELAY_LOAD -sTEXTDECODER=2 -sPTHREAD_POOL_SIZE_STRICT=2 -sINITIAL_MEMORY=$MAX_MEMORY -sPTHREAD_POOL_SIZE=$MAX_THREADS -sPOLYFILL=0 -sSUPPORT_LONGJMP=0 -sINVOKE_RUN=0 -sEXPORTED_FUNCTIONS=_malloc -sEXPORT_NAME=Vosklet -sMALLOC=emmalloc -sEXPORTED_RUNTIME_METHODS=UTF8ToString,stringToUTF8OnStack -sENVIRONMENT=web,worker -I. -I$LIBARCHIVE/include -I$VOSK/src -L$LIBARCHIVE/lib -larchive -L$KALDI/src -l:online2/kaldi-online2.a -l:decoder/kaldi-decoder.a -l:ivector/kaldi-ivector.a -l:gmm/kaldi-gmm.a -l:tree/kaldi-tree.a -l:feat/kaldi-feat.a -l:cudamatrix/kaldi-cudamatrix.a -l:lat/kaldi-lat.a -l:lm/kaldi-lm.a -l:rnnlm/kaldi-rnnlm.a -l:hmm/kaldi-hmm.a -l:nnet3/kaldi-nnet3.a -l:transform/kaldi-transform.a -l:matrix/kaldi-matrix.a -l:fstext/kaldi-fstext.a -l:util/kaldi-util.a -l:base/kaldi-base.a -L$OPENFST/lib -l:libfst.a -l:libfstngram.a -L$CLAPACK_WASM -l:CBLAS/lib/cblas.a -l:CLAPACK-3.2.1/lapack.a -l:CLAPACK-3.2.1/libcblaswr.a -l:f2c_BLAS-3.8.0/blas.a -l:libf2c/libf2c.a -L$VOSK/src -l:vosk.a -lopfs.js -lembind -pthread -flto -msimd128 --pre-js pre.js -o ../devel/Vosklet.js
|
em++ -O3 global.cc genericModel.cc recognizer.cc bindings.cc -sWASMFS -sWASM_BIGINT -sSINGLE_FILE -sGZIP_EMBEDDINGS -sMODULARIZE -sEMBIND_STD_STRING_IS_UTF8 -sPTHREAD_POOL_DELAY_LOAD -sTEXTDECODER=2 -sPTHREAD_POOL_SIZE_STRICT=2 -sINITIAL_MEMORY=$MAX_MEMORY -sPTHREAD_POOL_SIZE=$MAX_THREADS -sPOLYFILL=0 -sSUPPORT_LONGJMP=0 -sEXPORTED_FUNCTIONS=_malloc -sEXPORT_NAME=Vosklet -sMALLOC=emmalloc -sEXPORTED_RUNTIME_METHODS=UTF8ToString,stringToUTF8OnStack -sENVIRONMENT=web,worker -I. -I$LIBARCHIVE/include -I$VOSK/src -L$LIBARCHIVE/lib -larchive -L$KALDI/src -l:online2/kaldi-online2.a -l:decoder/kaldi-decoder.a -l:ivector/kaldi-ivector.a -l:gmm/kaldi-gmm.a -l:tree/kaldi-tree.a -l:feat/kaldi-feat.a -l:cudamatrix/kaldi-cudamatrix.a -l:lat/kaldi-lat.a -l:lm/kaldi-lm.a -l:rnnlm/kaldi-rnnlm.a -l:hmm/kaldi-hmm.a -l:nnet3/kaldi-nnet3.a -l:transform/kaldi-transform.a -l:matrix/kaldi-matrix.a -l:fstext/kaldi-fstext.a -l:util/kaldi-util.a -l:base/kaldi-base.a -L$OPENFST/lib -l:libfst.a -l:libfstngram.a -L$CLAPACK_WASM -l:CBLAS/lib/cblas.a -l:CLAPACK-3.2.1/lapack.a -l:CLAPACK-3.2.1/libcblaswr.a -l:f2c_BLAS-3.8.0/blas.a -l:libf2c/libf2c.a -L$VOSK/src -l:vosk.a -lopfs.js -lembind -pthread -flto -msimd128 --pre-js pre.js -o ../devel/Vosklet.js
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -3,12 +3,10 @@
|
|||||||
genericModel::genericModel(std::string storepath, std::string id, int index, bool normalMdl) : index(index), normalMdl(normalMdl) {
|
genericModel::genericModel(std::string storepath, std::string id, int index, bool normalMdl) : index(index), normalMdl(normalMdl) {
|
||||||
this->storepath = new char[storepath.size()];
|
this->storepath = new char[storepath.size()];
|
||||||
this->id = new char[id.size()];
|
this->id = new char[id.size()];
|
||||||
memcpy(this->storepath, storepath.c_str(), storepath.size());
|
strcpy(this->storepath, storepath.c_str());
|
||||||
memcpy(this->id, id.c_str(), id.size());
|
strcpy(this->id, id.c_str());
|
||||||
}
|
}
|
||||||
void genericModel::load(bool newTask) {
|
void genericModel::load(bool newTask) {
|
||||||
emscripten_console_log(storepath);
|
|
||||||
emscripten_console_log(id);
|
|
||||||
auto main{[this](){
|
auto main{[this](){
|
||||||
if(normalMdl) {
|
if(normalMdl) {
|
||||||
VoskModel* temp {vosk_model_new(".")};
|
VoskModel* temp {vosk_model_new(".")};
|
||||||
@@ -121,7 +119,6 @@ void genericModel::check() {
|
|||||||
}
|
}
|
||||||
void genericModel::afterFetch() {
|
void genericModel::afterFetch() {
|
||||||
thrd.addTask([this](){
|
thrd.addTask([this](){
|
||||||
emscripten_console_log("1");
|
|
||||||
if(!extract()) {
|
if(!extract()) {
|
||||||
fs::remove("/opfs/m0dEl.tar",tank);
|
fs::remove("/opfs/m0dEl.tar",tank);
|
||||||
fs::current_path("/opfs", tank);
|
fs::current_path("/opfs", tank);
|
||||||
@@ -129,17 +126,25 @@ void genericModel::afterFetch() {
|
|||||||
fireEv("_continue", "Unable to extract model", index);
|
fireEv("_continue", "Unable to extract model", index);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
emscripten_console_log("2");
|
|
||||||
fs::remove("/opfs/m0dEl.tar",tank);
|
fs::remove("/opfs/m0dEl.tar",tank);
|
||||||
fs::remove("README",tank);
|
fs::remove("README",tank);
|
||||||
if(!checkFiles()) {
|
if(!checkFiles()) {
|
||||||
fireEv("_continue", "URL points to invalid model files", index);
|
fireEv("_continue", "URL points to invalid model files", index);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
emscripten_console_log("3");
|
int idFd {open("id", O_WRONLY | O_TRUNC | O_CREAT)};
|
||||||
int idFd {open("id", O_WRONLY | O_TRUNC)};
|
if(idFd == -1) {
|
||||||
|
fireEv("_continue", "Unable create ID file", index);
|
||||||
|
fs::remove("/opfs/m0dEl.tar",tank);
|
||||||
|
fs::current_path("/opfs", tank);
|
||||||
|
fs::remove_all(storepath, tank);
|
||||||
|
return;
|
||||||
|
}
|
||||||
if(write(idFd, id, strlen(id)) == -1) {
|
if(write(idFd, id, strlen(id)) == -1) {
|
||||||
fireEv("_continue", "Unable to write new ID", index);
|
fireEv("_continue", "Unable to write new ID", index);
|
||||||
|
fs::remove("/opfs/m0dEl.tar",tank);
|
||||||
|
fs::current_path("/opfs", tank);
|
||||||
|
fs::remove_all(storepath, tank);
|
||||||
close(idFd);
|
close(idFd);
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user