Buffer.alloc with non-buffer fill
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- javascript, nodejs
- Ambito
- web-dev
Direzione di ricerca
Inizia confrontando Buffer.alloc(size[, fill[, encoding]]) con l’implementazione e i test attuali di buffer di Node, in particolare il caso di riempimento di Uint8Array mostrato qui. Esamina la discussione correlata in #177 e determina quali test di buffer di Node sono pertinenti; il lavoro è completo quando i byte di Uint8Array da 0 a 255 vengono preservati e il comportamento è coperto da test.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Hi @feross!
If you pass a <Uint8Array> as the fill to Buffer.alloc(size[, fill[, encoding]]) node (v14.15.1) will copy those bytes verbatim into the buffer, whereas with the ferros/buffer package, it does something and the end result is that the resulting buffer is filled with strange data.
const input = [ 247, 108, 225 ]
const typedArr = new Uint8Array(input)
const output = Array.from(Buffer.alloc(typedArr.byteLength, typedArr))
// node:
// [ 247, 108, 225 ] (matches input, expected)
// feross/buffer:
// [ 239, 191, 189 ] (???)
It works fine for numbers between 0 and 127, but things get weird once you're out of those bounds (Uint8 should work for numbers between 0 - 255).
Workaround is to pass a Buffer as the fill value:
const output = Array.from(Buffer.alloc(typedArr.byteLength, Buffer.from(typedArr)))
// node:
// [ 247, 108, 225 ] (cool)
// feross/buffer:
// [ 247, 108, 225 ] (cool)
I'd perhaps PR a fix for this specific issue, but I feel like the real problem is that this package needs to be refreshed with the latest buffer code + tests from node, rather than me patching in a specific fix? i.e. Perhaps related to #177. I looked into this briefly and the transform from node looked non-trivial if you haven't done it before.
- Lingua principale
- JavaScript
- Stelle
- 1.9k
- Fork
- 260
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Non abbiamo ancora controllato i file di configurazione di questo progetto. Parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di feross/buffer
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
-
Use `DataView`, remove dependency on `ieee754`Forse di nuovo libera @dcousens l’ha presa 627 giorni fa e non c’è nessuna pull request aperta. Aperta
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
-
Expose `Buffer#utf8Slice`Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 48/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 38/100
Tutte le issue di feross/buffer
Issue simili
-
factory-active factory-automatic harness/codex task-bug-reproduction-success task-identify-harness-labels-done task-identify-issue-type-done
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
vercel/ai#21582 · 3 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
ux
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
rr-djk/rr-djuikoo.com#53 ·
I maintainer di solito rispondono entro 1 giorno
-
Add shacl12-inference-rulesApertanew spec review
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
w3c/browser-specs#2666 · 1 commento ·
I maintainer di solito rispondono entro 3 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
thim81/openapi-format#238 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
decentespresso/dye2#13 ·