Skip to content

Commit 00f171f

Browse files
claudekalwalt
authored andcommitted
Drop EM_ASM_ side-channel; read frame fields from nftMarker directly
The EM_ASM_ block in readNFTMarker mirrored imgBW, imgBWsize, and F_points_NFT onto a JS-side arfset.frameMalloc global on every load. Those three values are already returned through the embind nftMarker value_object (pointer, imgBWsize, nftFeaturePoints), so the side channel is pure duplication plus an extra wasm->JS crossing. Remove the EM_ASM_ block and have both src/ARFset.js and the legacy js/arfset.api.js read directly from the returned struct. Closes #17
1 parent 0720bb4 commit 00f171f

3 files changed

Lines changed: 6 additions & 23 deletions

File tree

emscripten/ARimageFsetDisplay.cpp

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -175,18 +175,6 @@ nftMarker readNFTMarker(int id, std::string datasetPathname) {
175175

176176
arc->surfaceSetCount++;
177177

178-
EM_ASM_(
179-
{
180-
if (!arfset["frameMalloc"]) {
181-
arfset["frameMalloc"] = ({});
182-
}
183-
var frameMalloc = arfset["frameMalloc"];
184-
frameMalloc["frameIbwpointer"] = $1;
185-
frameMalloc["frameimgBWsize"] = $2;
186-
frameMalloc["frameFeaturePoints"] = $3
187-
},
188-
arc->id, arc->imgBW, arc->imgBWsize, arc->F_points_NFT);
189-
190178
nft.nftPoints.reserve(arc->num_F_points_NFT);
191179
for (int i = 0; i < arc->num_F_points_NFT; i++) {
192180
nftPoint p;

js/arfset.api.js

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -127,11 +127,8 @@ ARfset.prototype.loadNFTMarker = function (markerURL, onSuccess, onError) {
127127
var self = this;
128128
if (markerURL) {
129129
return arfset.readNFTMarker(this.id, markerURL, function (nftMarker) {
130-
//console.log(nftMarker);
131-
//console.log(nftMarker.nftPoints);
132-
var params = arfset.frameMalloc;
133-
self.frameIbwpointer = params.frameIbwpointer;
134-
self.frameimgBWsize = params.frameimgBWsize;
130+
self.frameIbwpointer = nftMarker.pointer;
131+
self.frameimgBWsize = nftMarker.imgBWsize;
135132
var nftEvent = new CustomEvent('nftMarker', {
136133
detail: {
137134
numIset: nftMarker.numIset,

src/ARFset.js

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -155,9 +155,8 @@ export default class ARFset {
155155
async loadNFTMarker (urlOrData) {
156156
let nft = await this.addNFTMarker(this.id, urlOrData)
157157
.then((nftMarker) => {
158-
var params = arfset.frameMalloc;
159-
this.frameIbwpointer = params.frameIbwpointer;
160-
this.frameimgBWsize = params.frameimgBWsize;
158+
this.frameIbwpointer = nftMarker.pointer;
159+
this.frameimgBWsize = nftMarker.imgBWsize;
161160
var nftEvent = new CustomEvent('nftMarker', {
162161
detail: {
163162
numIset: nftMarker.numIset,
@@ -180,9 +179,8 @@ export default class ARFset {
180179
async loadNFTMarkerBlob (urlOrData) {
181180
let nft = await this.addNFTMarkerBlob(this.id, urlOrData)
182181
.then((nftMarker) => {
183-
var params = arfset.frameMalloc;
184-
this.frameIbwpointer = params.frameIbwpointer;
185-
this.frameimgBWsize = params.frameimgBWsize;
182+
this.frameIbwpointer = nftMarker.pointer;
183+
this.frameimgBWsize = nftMarker.imgBWsize;
186184
var nftEvent = new CustomEvent('nftMarker', {
187185
detail: {
188186
numIset: nftMarker.numIset,

0 commit comments

Comments
 (0)