11
11
stackSave
12
12
UTF8ToString
13
13
stringToNewUTF8
14
- allocateUTF8OnStack
15
14
removeFunction
16
15
addFunction
17
16
writeArrayToMemory
@@ -947,25 +946,27 @@ Module["onRuntimeInitialized"] = function onRuntimeInitialized() {
947
946
if ( ! this . db ) {
948
947
throw "Database closed" ;
949
948
}
950
- var stack = stackSave ( ) ;
951
949
var stmt = null ;
950
+ var originalSqlPtr = null ;
951
+ var currentSqlPtr = null ;
952
952
try {
953
- var nextSqlPtr = allocateUTF8OnStack ( sql ) ;
953
+ originalSqlPtr = stringToNewUTF8 ( sql ) ;
954
+ currentSqlPtr = originalSqlPtr ;
954
955
var pzTail = stackAlloc ( 4 ) ;
955
956
var results = [ ] ;
956
- while ( getValue ( nextSqlPtr , "i8" ) !== NULL ) {
957
+ while ( getValue ( currentSqlPtr , "i8" ) !== NULL ) {
957
958
setValue ( apiTemp , 0 , "i32" ) ;
958
959
setValue ( pzTail , 0 , "i32" ) ;
959
960
this . handleError ( sqlite3_prepare_v2_sqlptr (
960
961
this . db ,
961
- nextSqlPtr ,
962
+ currentSqlPtr ,
962
963
- 1 ,
963
964
apiTemp ,
964
965
pzTail
965
966
) ) ;
966
967
// pointer to a statement, or null
967
968
var pStmt = getValue ( apiTemp , "i32" ) ;
968
- nextSqlPtr = getValue ( pzTail , "i32" ) ;
969
+ currentSqlPtr = getValue ( pzTail , "i32" ) ;
969
970
// Empty statement
970
971
if ( pStmt !== NULL ) {
971
972
var curresult = null ;
@@ -991,7 +992,7 @@ Module["onRuntimeInitialized"] = function onRuntimeInitialized() {
991
992
if ( stmt ) stmt [ "free" ] ( ) ;
992
993
throw errCaught ;
993
994
} finally {
994
- stackRestore ( stack ) ;
995
+ if ( originalSqlPtr ) _free ( originalSqlPtr ) ;
995
996
}
996
997
} ;
997
998
0 commit comments