Toggle navigation
Toggle navigation
This project
Loading...
Sign in
Franck Pommereau
/
zinc
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
Franck Pommereau
2018-04-05 14:25:48 +0200
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
7f28666d6cafc998e6766cf66f91a4a5070d04eb
7f28666d
1 parent
db33647f
minor code cleanup
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
11 additions
and
11 deletions
libs/go/src/dicts/dicts.go
libs/go/src/dicts/dicts.go
View file @
7f28666
...
...
@@ -75,34 +75,35 @@ func (self *Dict) Clear () {
type
copyfunc
func
(
interface
{})
interface
{}
func
(
self
Dict
)
Copy
(
copiers
...
copyfunc
)
Dict
{
d
:=
Dict
{}
d
.
indices
=
make
(
map
[
uint64
]
int64
)
d
:=
Dict
{
make
(
map
[
uint64
]
int64
),
make
([]
DictItem
,
len
(
self
.
itemlist
)),
self
.
used
,
self
.
filled
,
self
.
keyhash
}
for
k
,
v
:=
range
self
.
indices
{
d
.
indices
[
k
]
=
v
}
d
.
itemlist
=
make
([]
DictItem
,
len
(
self
.
itemlist
))
if
len
(
copiers
)
==
0
{
copy
(
d
.
itemlist
,
self
.
itemlist
)
}
else
if
len
(
copiers
)
==
1
{
cpk
:=
copiers
[
0
]
for
index
,
item
:=
range
self
.
itemlist
{
for
i
:=
uint64
(
0
);
i
<
self
.
used
;
i
++
{
item
:=
&
self
.
itemlist
[
i
]
k
:=
cpk
(
*
(
item
.
Key
))
d
.
itemlist
[
i
ndex
]
=
DictItem
{
&
k
,
item
.
Value
,
item
.
hash
}
d
.
itemlist
[
i
]
=
DictItem
{
&
k
,
item
.
Value
,
item
.
hash
}
}
}
else
if
len
(
copiers
)
==
2
{
cpk
:=
copiers
[
0
]
cpv
:=
copiers
[
1
]
for
index
,
item
:=
range
self
.
itemlist
{
for
i
:=
uint64
(
0
);
i
<
self
.
used
;
i
++
{
item
:=
&
self
.
itemlist
[
i
]
k
:=
cpk
(
*
(
item
.
Key
))
v
:=
cpv
(
*
(
item
.
Value
))
d
.
itemlist
[
i
ndex
]
=
DictItem
{
&
k
,
&
v
,
item
.
hash
}
d
.
itemlist
[
i
]
=
DictItem
{
&
k
,
&
v
,
item
.
hash
}
}
}
else
{
panic
(
"at most two copiers are allowed"
)
}
d
.
used
=
self
.
used
d
.
filled
=
self
.
filled
d
.
keyhash
=
self
.
keyhash
return
d
}
...
...
@@ -223,7 +224,6 @@ func (self *Dict) Del (key interface{}) {
self
.
indices
[
j
]
=
index
self
.
itemlist
[
index
]
=
lastitem
}
self
.
itemlist
=
self
.
itemlist
[
:
self
.
used
]
self
.
keyhash
-=
hashvalue
}
...
...
Please
register
or
login
to post a comment