Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
go-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
Levin Zimmermann
go-fuse
Commits
a29304bc
Commit
a29304bc
authored
Jun 24, 2011
by
Han-Wen Nienhuys
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix 64 bit HandleMap.Register.
parent
06952630
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
6 additions
and
3 deletions
+6
-3
fuse/handle.go
fuse/handle.go
+6
-3
No files found.
fuse/handle.go
View file @
a29304bc
...
...
@@ -64,12 +64,15 @@ func (me *HandleMap) Register(obj *Handled) (handle uint64) {
if
unsafe
.
Sizeof
(
obj
)
==
8
{
me
.
nextFree
=
me
.
nextFree
&
(
1
<<
(
64
-
48
+
3
)
-
1
)
rest
:=
(
handle
&^
(
1
<<
48
-
1
))
|
(
handle
&
(
1
<<
3
-
1
))
rest
:=
(
handle
&^
(
1
<<
48
-
1
))
if
rest
!=
0
{
panic
(
"unaligned ptr or more than 48 bits in address"
)
panic
(
"more than 48 bits in address"
)
}
if
handle
&
0x7
!=
0
{
panic
(
"unaligned ptr"
)
}
handle
>>=
3
handle
|=
uint64
(
obj
.
check
)
<<
(
64
-
48
+
3
)
handle
|=
uint64
(
check
)
<<
(
48
-
3
)
}
if
unsafe
.
Sizeof
(
obj
)
==
4
{
...
...
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