]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Minor internal JS code/docs cleanups.
authorstephan <stephan@noemail.net>
Tue, 6 Dec 2022 08:21:23 +0000 (08:21 +0000)
committerstephan <stephan@noemail.net>
Tue, 6 Dec 2022 08:21:23 +0000 (08:21 +0000)
FossilOrigin-Name: 21331bdd36a91b07a687ffadce392dcf2ccd0fd824b35d9dd027d4289a40fc96

ext/wasm/api/sqlite3-api-glue.js
ext/wasm/common/whwasmutil.js
ext/wasm/jaccwabyt/jaccwabyt.js
ext/wasm/jaccwabyt/jaccwabyt.md
manifest
manifest.uuid

index 0516953f108203a4a7bbd736c5661a4dbf93f5e8..89c8044be11c102987fe14cfc81172e4e8e7cbe0 100644 (file)
@@ -31,9 +31,9 @@ self.sqlite3ApiBootstrap.initializers.push(function(sqlite3){
     heap: 0 ? wasm.memory : wasm.heap8u,
     alloc: wasm.alloc,
     dealloc: wasm.dealloc,
-    functionTable: wasm.functionTable,
     bigIntEnabled: wasm.bigIntEnabled,
-    memberPrefix: '$'
+    memberPrefix: /* Never change this: this prefix is baked into any
+                     amount of code and client-facing docs. */ '$'
   });
   delete self.Jaccwabyt;
 
index 9bce82f1a9da53550c87bdb528b7ad5d64570324..ea344c6ea3db93b6e46cd9eedcc3811c5785ef4d 100644 (file)
@@ -943,10 +943,19 @@ self.WhWasmUtilInstaller = function(target){
   const __allocCStr = function(jstr, returnWithLength, allocator, funcName){
     __affirmAlloc(target, funcName);
     if('string'!==typeof jstr) return null;
-    const n = target.jstrlen(jstr),
-          ptr = allocator(n+1);
-    target.jstrcpy(jstr, target.heap8u(), ptr, n+1, true);
-    return returnWithLength ? [ptr, n] : ptr;
+    if(0){/* older impl, possibly more widely compatible? */
+      const n = target.jstrlen(jstr),
+            ptr = allocator(n+1);
+      target.jstrcpy(jstr, target.heap8u(), ptr, n+1, true);
+      return returnWithLength ? [ptr, n] : ptr;
+    }else{/* newer, (probably) faster and (certainly) simpler impl */
+      const u = cache.utf8Encoder.encode(jstr),
+            ptr = allocator(u.length+1),
+            heap = heapWrappers().HEAP8U;
+      heap.set(u, ptr);
+      heap[ptr + u.length] = 0;
+      return returnWithLength ? [ptr, u.length] : ptr;
+    }
   };
 
   /**
index 1fa6baf154f5dd011127bee2006353019ff1a124..d5225f6e4d14b9c9f97d7436e511a24069084aa8 100644 (file)
@@ -61,7 +61,6 @@ self.Jaccwabyt = function StructBinderFactory(config){
         BigInt = self['BigInt'],
         BigInt64Array = self['BigInt64Array'],
         /* Undocumented (on purpose) config options: */
-        functionTable = config.functionTable/*EXPERIMENTAL, undocumented*/,
         ptrSizeof = config.ptrSizeof || 4,
         ptrIR = config.ptrIR || 'i32'
   ;
@@ -258,7 +257,7 @@ self.Jaccwabyt = function StructBinderFactory(config){
                             iterable: false, value: v}};
 
   /** Allocates obj's memory buffer based on the size defined in
-      DEF.sizeof. */
+      ctor.structInfo.sizeof. */
   const __allocStruct = function(ctor, obj, m){
     let fill = !m;
     if(m) Object.defineProperty(obj, xPtrPropName, rop(m));
@@ -295,7 +294,7 @@ self.Jaccwabyt = function StructBinderFactory(config){
      if tossIfNotFound is true, else returns undefined if not
      found. The given name may be either the name of the
      structInfo.members key (faster) or the key as modified by the
-     memberPrefix/memberSuffix settings.
+     memberPrefix and memberSuffix settings.
   */
   const __lookupMember = function(structInfo, memberName, tossIfNotFound=true){
     let m = structInfo.members[memberName];
@@ -423,8 +422,9 @@ self.Jaccwabyt = function StructBinderFactory(config){
     const mem = alloc(u.length+1);
     if(!mem) toss("Allocation error while duplicating string:",str);
     const h = heap();
-    let i = 0;
-    for( ; i < u.length; ++i ) h[mem + i] = u[i];
+    //let i = 0;
+    //for( ; i < u.length; ++i ) h[mem + i] = u[i];
+    h.set(u, mem);
     h[mem + u.length] = 0;
     //log("allocCString @",mem," =",u);
     return mem;
@@ -436,6 +436,10 @@ self.Jaccwabyt = function StructBinderFactory(config){
      to free any prior memory, if appropriate. The newly-allocated
      string is added to obj.ondispose so will be freed when the object
      is disposed.
+
+     The given name may be either the name of the structInfo.members
+     key (faster) or the key as modified by the memberPrefix and
+     memberSuffix settings.
   */
   const __setMemberCString = function(obj, memberName, str){
     const m = __lookupMember(obj.structInfo, memberName, true);
index 17ada1edf0ee608b6ecc120492773b3c1e47d97e..49e2d3b8ff1824d1340bb386ddfe7c252b3731da 100644 (file)
@@ -205,7 +205,6 @@ simply look like:
 The StructBinder factory function returns a function which can then be
 used to create bindings for our structs.
 
-
 <a name='step-2'></a>
 Step 2: Create a Struct Description
 ------------------------------------------------------------
@@ -606,14 +605,15 @@ legally be called on concrete struct instances unless noted otherwise:
   - If it is a function, it is called with the struct object as its `this`.
   That method must not throw - if it does, the exception will be
   ignored.
-  - If it is an array, it may contain functions, pointers, and/or JS
-    strings. If an entry is a function, it is called as described
-    above. If it's a number, it's assumed to be a pointer and is
-    passed to the `dealloc()` function configured for the parent
-    [StructBinder][].  If it's a JS string, it's assumed to be a
-    helpful description of the next entry in the list and is simply
-    ignored. Strings are supported primarily for use as debugging
-    information.
+  - If it is an array, it may contain functions, pointers, other
+    [StructType] instances, and/or JS strings. If an entry is a
+    function, it is called as described above. If it's a number, it's
+    assumed to be a pointer and is passed to the `dealloc()` function
+    configured for the parent [StructBinder][]. If it's a
+    [StructType][] instance then its `dispose()` method is called. If
+    it's a JS string, it's assumed to be a helpful description of the
+    next entry in the list and is simply ignored. Strings are
+    supported primarily for use as debugging information.
   - Some struct APIs will manipulate the `ondispose` member, creating
     it as an array or converting it from a function to array as
     needed.
index 14bb688eee4b8306a52befd96092d3f2c4c94fe1..92dde177a18c3bdb283b38c27810eabf737d4807 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Merge\strunk\sinto\swasm-vtab\sbranch.
-D 2022-12-06T06:21:02.190
+C Minor\sinternal\sJS\scode/docs\scleanups.
+D 2022-12-06T08:21:23.652
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -503,7 +503,7 @@ F ext/wasm/api/post-js-footer.js cd0a8ec768501d9bd45d325ab0442037fb0e33d1f3b4f08
 F ext/wasm/api/post-js-header.js 47b6b281f39ad59fa6e8b658308cd98ea292c286a68407b35ff3ed9cfd281a62
 F ext/wasm/api/pre-js.c-pp.js b88499dc303c21fc3f55f2c364a0f814f587b60a95784303881169f9e91c1d5f
 F ext/wasm/api/sqlite3-api-cleanup.js 680d5ccfff54459db136a49b2199d9f879c8405d9c99af1dda0cc5e7c29056f4
-F ext/wasm/api/sqlite3-api-glue.js c3a11e1d0e6fd381f68f9e76ad01f3616a6b809fbf9f5aa8e323955c128a6811
+F ext/wasm/api/sqlite3-api-glue.js 057c9ed555ee68ee795dc61e8d923862a0ddeb3d4cbad89866515cf5a1b77343
 F ext/wasm/api/sqlite3-api-oo1.js b970787aaf0bdd3a3df59cf66aeb84d0decaaa0529aed7eaf45121087181245f
 F ext/wasm/api/sqlite3-api-prologue.js 31cffd8ce212fad8d316a08decd864b0f614c5fce3686153707dffe40f8279e8
 F ext/wasm/api/sqlite3-api-worker1.js e94ba98e44afccfa482874cd9acb325883ade50ed1f9f9526beb9de1711f182f
@@ -521,7 +521,7 @@ F ext/wasm/c-pp.c 92285f7bce67ed7b7020b40fde8ed0982c442b63dc33df9dfd4b658d4a6c07
 F ext/wasm/common/SqliteTestUtil.js d8bf97ecb0705a2299765c8fc9e11b1a5ac7f10988bbf375a6558b7ca287067b
 F ext/wasm/common/emscripten.css 11bd104b6c0d597c67d40cc8ecc0a60dae2b965151e3b6a37fa5708bac3acd15
 F ext/wasm/common/testing.css 0ff15602a3ab2bad8aef2c3bd120c7ee3fd1c2054ad2ace7e214187ae68d926f
-F ext/wasm/common/whwasmutil.js 0de1e72494d52185d518892a3ac95d38b8e295d3699b64ddb36a3d46c11c8346
+F ext/wasm/common/whwasmutil.js cedbdb2162db129fd95951025572e087066d5457adc27ffd8083610a26306fc9
 F ext/wasm/demo-123-worker.html a0b58d9caef098a626a1a1db567076fca4245e8d60ba94557ede8684350a81ed
 F ext/wasm/demo-123.html 8c70a412ce386bd3796534257935eb1e3ea5c581e5d5aea0490b8232e570a508
 F ext/wasm/demo-123.js ebae30756585bca655b4ab2553ec9236a87c23ad24fc8652115dcedb06d28df6
@@ -539,8 +539,8 @@ F ext/wasm/fiddle/fiddle.js 974b995119ac443685d7d94d3b3c58c6a36540e9eb3fed7069d5
 F ext/wasm/fiddle/index.html 5daf54e8f3d7777cbb1ca4f93affe28858dbfff25841cb4ab81d694efed28ec2
 F ext/wasm/index-dist.html c806b6005145b71d64240606e9c6e0bf56878ee8829c66fe7486cebf34b0e6b1
 F ext/wasm/index.html f151b7c7b5cfdc066567d556acd168e769efd4e982286dc5f849a5ee69ecd0ff
-F ext/wasm/jaccwabyt/jaccwabyt.js f4fc93375e9c40ef60f56cbecca1b4dc8bf4f53fab2c3abc860ed34890c5d32d
-F ext/wasm/jaccwabyt/jaccwabyt.md 4bf62f7519857cdd674594aba7436cc4fae177eefbfaabc00740e16d9a828bee
+F ext/wasm/jaccwabyt/jaccwabyt.js 35c7eaa61ba4b875cd49da5a06a35d9935fd19121de65dd5f467cbe376359782
+F ext/wasm/jaccwabyt/jaccwabyt.md 888aff20e486abb6c955d432f9a3af271e2cdd2cd99a92c6f87077116ca57091
 F ext/wasm/module-symbols.html 980680c8acfa3c8ae6a5aa223512d1b8e78040ced20f8ba2c382129bc73ec028
 F ext/wasm/scratchpad-wasmfs-main.html 20cf6f1a8f368e70d01e8c17200e3eaa90f1c8e1029186d836d14b83845fbe06
 F ext/wasm/scratchpad-wasmfs-main.js 4c140457f4d6da9d646a49addd91edb6e9ad1643c6c48e3258b5bce24725dc18
@@ -2067,8 +2067,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P f902f3b2c79d6c699ead1efeb1426e1e0f4ac709afdff88be1de62f34f3d5ccc f41f18b1c3c950565ee3c237aebb51cfc3241813c6425813a8217e07aa0153a6
-R 8bcaf9d3b9f238bc8e19a8bbe1bb65e6
+P d106edb956bbe22bddc2c6e5bcdf4fb8f797794c725c2e359e3fa4b31d881843
+R 9cc98a74b7c97dbae209498a8d29cfcb
 U stephan
-Z 78f5f82441cc43a02424eee016e46cb3
+Z 5e0b6a6419517a5a90c958328ab9c938
 # Remove this line to create a well-formed Fossil manifest.
index 1b960ebdc56210856542e6fadc0d84a2d7943b02..7afb1aff3775de4ca334b7ddef707481501fc455 100644 (file)
@@ -1 +1 @@
-d106edb956bbe22bddc2c6e5bcdf4fb8f797794c725c2e359e3fa4b31d881843
\ No newline at end of file
+21331bdd36a91b07a687ffadce392dcf2ccd0fd824b35d9dd027d4289a40fc96
\ No newline at end of file