MCPcopy Create free account
hub / github.com/chronoxor/FastBinaryEncoding / setBegin

Method setBegin

projects/JavaScript/proto/protoex.js:1356–1375  ·  view source on GitHub ↗

* Set the struct value (begin phase) * @this {!FieldModelOrder} * @returns {!number} Field model begin offset

()

Source from the content-addressed store, hash-verified

1354 * @returns {!number} Field model begin offset
1355 */
1356 setBegin () {
1357 console.assert(((this._buffer.offset + this.fbeOffset + this.fbeSize) <= this._buffer.size), 'Model is broken!')
1358 if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) {
1359 return 0
1360 }
1361
1362 let fbeStructSize = this.fbeBody
1363 let fbeStructOffset = this._buffer.allocate(fbeStructSize) - this._buffer.offset
1364 console.assert((fbeStructOffset > 0) && ((this._buffer.offset + fbeStructOffset + fbeStructSize) <= this._buffer.size), 'Model is broken!')
1365 if ((fbeStructOffset <= 0) || ((this._buffer.offset + fbeStructOffset + fbeStructSize) > this._buffer.size)) {
1366 return 0
1367 }
1368
1369 this.writeUInt32(this.fbeOffset, fbeStructOffset)
1370 this.writeUInt32(fbeStructOffset, fbeStructSize)
1371 this.writeUInt32(fbeStructOffset + 4, this.fbeType)
1372
1373 this._buffer.shift(fbeStructOffset)
1374 return fbeStructOffset
1375 }
1376
1377 /**
1378 * Set the struct value (end phase)

Callers 1

setMethod · 0.95

Calls 3

allocateMethod · 0.45
writeUInt32Method · 0.45
shiftMethod · 0.45

Tested by

no test coverage detected