mirror of
https://github.com/cwinfo/yggdrasil-go.git
synced 2024-11-26 00:11:36 +00:00
get rid of an allocation in tunWriter's _write
This commit is contained in:
parent
71404f5270
commit
c2a8b4bb57
@ -25,14 +25,16 @@ func (w *tunWriter) writeFrom(from phony.Actor, b []byte) {
|
|||||||
// write is pretty loose with the memory safety rules, e.g. it assumes it can
|
// write is pretty loose with the memory safety rules, e.g. it assumes it can
|
||||||
// read w.tun.iface.IsTap() safely
|
// read w.tun.iface.IsTap() safely
|
||||||
func (w *tunWriter) _write(b []byte) {
|
func (w *tunWriter) _write(b []byte) {
|
||||||
|
defer util.PutBytes(b)
|
||||||
var written int
|
var written int
|
||||||
var err error
|
var err error
|
||||||
n := len(b)
|
n := len(b)
|
||||||
if n == 0 {
|
if n == 0 {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
written, err = w.tun.iface.Write(append(make([]byte, TUN_OFFSET_BYTES), b...), TUN_OFFSET_BYTES)
|
temp := append(util.ResizeBytes(util.GetBytes(), TUN_OFFSET_BYTES), b...)
|
||||||
util.PutBytes(b)
|
defer util.PutBytes(temp)
|
||||||
|
written, err = w.tun.iface.Write(temp, TUN_OFFSET_BYTES)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
w.tun.Act(w, func() {
|
w.tun.Act(w, func() {
|
||||||
if !w.tun.isOpen {
|
if !w.tun.isOpen {
|
||||||
|
Loading…
Reference in New Issue
Block a user