Socket
Socket
Sign inDemoInstall

memory-pager

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

memory-pager - npm Package Compare versions

Comparing version 1.4.0 to 1.5.0

76

index.js

@@ -8,3 +8,6 @@ module.exports = Pager

this.updates = []
this.pages = new Array(16)
this.path = new Uint16Array(4)
this.pages = new Array(32768)
this.maxPages = this.pages.length
this.level = 0
this.pageSize = pageSize || 1024

@@ -36,12 +39,34 @@ this.deduplicate = opts ? opts.deduplicate : null

Pager.prototype.get = function (i, noAllocate) {
if (i >= this.pages.length) {
Pager.prototype._array = function (i, noAllocate) {
if (i >= this.maxPages) {
if (noAllocate) return
this.pages = grow(this.pages, i, this.length)
grow(this, i)
}
var page = this.pages[i]
factor(i, this.path)
var arr = this.pages
for (var j = this.level; j > 0; j--) {
var p = this.path[j]
var next = arr[p]
if (!next) {
if (noAllocate) return
next = arr[p] = new Array(32768)
}
arr = next
}
return arr
}
Pager.prototype.get = function (i, noAllocate) {
var arr = this._array(i, noAllocate)
var first = this.path[0]
var page = arr && arr[first]
if (!page && !noAllocate) {
page = this.pages[i] = new Page(i, alloc(this.pageSize))
page = arr[first] = new Page(i, alloc(this.pageSize))
if (i >= this.length) this.length = i + 1

@@ -59,7 +84,9 @@ }

Pager.prototype.set = function (i, buf) {
if (i >= this.pages.length) this.pages = grow(this.pages, i, this.length)
var arr = this._array(i, false)
var first = this.path[0]
if (i >= this.length) this.length = i + 1
if (!buf || (this.zeros && buf.equals && buf.equals(this.zeros))) {
this.pages[i] = undefined
arr[first] = undefined
return

@@ -72,7 +99,7 @@ }

var page = this.pages[i]
var page = arr[first]
var b = truncate(buf, this.pageSize)
if (page) page.buffer = b
else this.pages[i] = new Page(i, b)
else arr[first] = new Page(i, b)
}

@@ -83,5 +110,9 @@

var empty = alloc(this.pageSize)
var ptr = 0
for (var i = 0; i < list.length; i++) {
list[i] = this.pages[i] ? this.pages[i].buffer : empty
while (ptr < list.length) {
var arr = this._array(ptr, true)
for (var i = 0; i < 32768 && ptr < list.length; i++) {
list[ptr++] = (arr && arr[i]) ? arr[i].buffer : empty
}
}

@@ -92,9 +123,10 @@

function grow (list, index, len) {
var nlen = list.length * 2
while (nlen <= index) nlen *= 2
var twice = new Array(nlen)
for (var i = 0; i < len; i++) twice[i] = list[i]
return twice
function grow (pager, index) {
while (pager.maxPages < index) {
var old = pager.pages
pager.pages = new Array(32768)
pager.pages[0] = old
pager.level++
pager.maxPages *= 32768
}
}

@@ -129,1 +161,7 @@

}
function factor (n, out) {
n = (n - (out[0] = (n & 32767))) / 32768
n = (n - (out[1] = (n & 32767))) / 32768
out[3] = ((n - (out[2] = (n & 32767))) / 32768) & 32767
}
{
"name": "memory-pager",
"version": "1.4.0",
"version": "1.5.0",
"description": "Access memory using small fixed sized buffers",

@@ -5,0 +5,0 @@ "main": "index.js",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc