Buffer.alloc with non-buffer fill
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- javascript, nodejs
- Área
- web-dev
Línea de trabajo
Comienza comparando Buffer.alloc(size[, fill[, encoding]]) con la implementación y las pruebas actuales de buffer de Node, especialmente con el caso de relleno de Uint8Array mostrado aquí. Revisa la discusión relacionada en #177 y determina qué pruebas de buffer de Node son relevantes; se considera terminado cuando se conservan los bytes de Uint8Array del 0 al 255 y el comportamiento está cubierto por pruebas.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- JavaScript
- Estrellas
- 1.9k
- Forks
- 260
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de feross/buffer
-
React Native, unordered_map::at: key not found when passing a Buffer instead of a Uint8Array Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
-
Expose `Buffer#utf8Slice` Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 48/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 38/100
Todos los issues de feross/buffer
Issues similares
-
Dificultad 1/5 1-3 horas Aptitud para principiantes 78/100
Mintplex-Labs/anything-llm#6490 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
-
[quality] workflow-scripts guard reads test:unit:coverage as skipping the unit suite, blocking #632 Abiertoagent/quality hive/hosted-available-lke648397-260827-5n31 quality testing
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
area-clientside-dartpad
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100