Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
J
jacobsa-fuse
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
jacobsa-fuse
Commits
bb88db68
Commit
bb88db68
authored
Jul 28, 2015
by
Aaron Jacobs
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
OutMessage.Append
parent
75e2706a
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
20 additions
and
2 deletions
+20
-2
internal/buffer/out_message.go
internal/buffer/out_message.go
+12
-2
internal/buffer/runtime.go
internal/buffer/runtime.go
+5
-0
internal/buffer/runtime.s
internal/buffer/runtime.s
+3
-0
No files found.
internal/buffer/out_message.go
View file @
bb88db68
...
...
@@ -15,7 +15,9 @@
package
buffer
import
(
"fmt"
"log"
"reflect"
"unsafe"
"github.com/jacobsa/fuse/internal/fusekernel"
...
...
@@ -87,8 +89,16 @@ func (b *OutMessage) GrowNoZero(size uintptr) (p unsafe.Pointer) {
// Equivalent to growing by the length of p, then copying p over the new
// segment. Panics if there is not enough room available.
func
(
b
*
OutMessage
)
Append
(
p
[]
byte
)
{
panic
(
"TODO"
)
func
(
b
*
OutMessage
)
Append
(
src
[]
byte
)
{
p
:=
b
.
GrowNoZero
(
uintptr
(
len
(
src
)))
if
p
==
nil
{
panic
(
fmt
.
Sprintf
(
"Can't grow %d bytes"
,
len
(
src
)))
}
sh
:=
(
*
reflect
.
SliceHeader
)(
unsafe
.
Pointer
(
&
src
))
memmove
(
p
,
unsafe
.
Pointer
(
sh
.
Data
),
uintptr
(
sh
.
Len
))
return
}
// Equivalent to growing by the length of s, then copying s over the new
...
...
internal/buffer/runtime.go
View file @
bb88db68
...
...
@@ -20,3 +20,8 @@ import "unsafe"
// Zero the n bytes starting at p.
func
memclr
(
p
unsafe
.
Pointer
,
n
uintptr
)
//go:noescape
// Copy from src to dst, allowing overlap.
func
memmove
(
dst
unsafe
.
Pointer
,
src
unsafe
.
Pointer
,
n
uintptr
)
internal/buffer/runtime.s
View file @
bb88db68
...
...
@@ -31,3 +31,6 @@
TEXT
·
memclr
(
SB
),
NOSPLIT
,$0-16
JMP
runtime
·
memclr
(
SB
)
TEXT
·
memmove
(
SB
),
NOSPLIT
,$0-24
JMP
runtime
·
memmove
(
SB
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment