Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
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
mariadb
Commits
5a78db3d
Commit
5a78db3d
authored
Sep 03, 2006
by
jonas@perch.ndb.mysql.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ndb -
fix ndb-violations of strict aliasing found by gcc4.1 (crashes in ndb_dd_*)
parent
6d715dea
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
24 additions
and
7 deletions
+24
-7
storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp
storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp
+2
-2
storage/ndb/src/kernel/vm/KeyTable2Ref.hpp
storage/ndb/src/kernel/vm/KeyTable2Ref.hpp
+18
-4
storage/ndb/src/kernel/vm/Pool.hpp
storage/ndb/src/kernel/vm/Pool.hpp
+4
-1
No files found.
storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp
View file @
5a78db3d
...
@@ -7295,7 +7295,7 @@ void Dbdict::execGET_TABINFOREQ(Signal* signal)
...
@@ -7295,7 +7295,7 @@ void Dbdict::execGET_TABINFOREQ(Signal* signal)
if
(
objEntry
->
m_tableType
==
DictTabInfo
::
Datafile
)
if
(
objEntry
->
m_tableType
==
DictTabInfo
::
Datafile
)
{
{
jam
();
jam
();
GetTabInfoReq
*
req
=
(
GetTabInfoReq
*
)
signal
->
theData
;
GetTabInfoReq
*
req
=
(
GetTabInfoReq
*
)
signal
->
getDataPtrSend
()
;
req
->
senderData
=
c_retrieveRecord
.
retrievePage
;
req
->
senderData
=
c_retrieveRecord
.
retrievePage
;
req
->
senderRef
=
reference
();
req
->
senderRef
=
reference
();
req
->
requestType
=
GetTabInfoReq
::
RequestById
;
req
->
requestType
=
GetTabInfoReq
::
RequestById
;
...
@@ -7307,7 +7307,7 @@ void Dbdict::execGET_TABINFOREQ(Signal* signal)
...
@@ -7307,7 +7307,7 @@ void Dbdict::execGET_TABINFOREQ(Signal* signal)
else
if
(
objEntry
->
m_tableType
==
DictTabInfo
::
LogfileGroup
)
else
if
(
objEntry
->
m_tableType
==
DictTabInfo
::
LogfileGroup
)
{
{
jam
();
jam
();
GetTabInfoReq
*
req
=
(
GetTabInfoReq
*
)
signal
->
theData
;
GetTabInfoReq
*
req
=
(
GetTabInfoReq
*
)
signal
->
getDataPtrSend
()
;
req
->
senderData
=
c_retrieveRecord
.
retrievePage
;
req
->
senderData
=
c_retrieveRecord
.
retrievePage
;
req
->
senderRef
=
reference
();
req
->
senderRef
=
reference
();
req
->
requestType
=
GetTabInfoReq
::
RequestById
;
req
->
requestType
=
GetTabInfoReq
::
RequestById
;
...
...
storage/ndb/src/kernel/vm/KeyTable2Ref.hpp
View file @
5a78db3d
...
@@ -32,19 +32,33 @@ public:
...
@@ -32,19 +32,33 @@ public:
bool
find
(
Ptr
<
T
>&
ptr
,
Uint32
key
)
const
{
bool
find
(
Ptr
<
T
>&
ptr
,
Uint32
key
)
const
{
U
rec
;
U
rec
;
rec
.
key
=
key
;
rec
.
key
=
key
;
return
m_ref
.
find
(
*
(
Ptr
<
U
>*
)
&
ptr
,
rec
);
Ptr
<
U
>
tmp
;
bool
ret
=
m_ref
.
find
(
tmp
,
rec
);
ptr
.
i
=
tmp
.
i
;
ptr
.
p
=
static_cast
<
T
*>
(
tmp
.
p
);
return
ret
;
}
}
bool
seize
(
Ptr
<
T
>
&
ptr
)
{
bool
seize
(
Ptr
<
T
>
&
ptr
)
{
return
m_ref
.
seize
(
*
(
Ptr
<
U
>*
)
&
ptr
);
Ptr
<
U
>
tmp
;
bool
ret
=
m_ref
.
seize
(
tmp
);
ptr
.
i
=
tmp
.
i
;
ptr
.
p
=
static_cast
<
T
*>
(
tmp
.
p
);
return
ret
;
}
}
void
add
(
Ptr
<
T
>
&
ptr
)
{
void
add
(
Ptr
<
T
>
&
ptr
)
{
m_ref
.
add
(
*
(
Ptr
<
U
>*
)
&
ptr
);
Ptr
<
U
>
tmp
;
tmp
.
i
=
ptr
.
i
;
tmp
.
p
=
static_cast
<
U
*>
(
ptr
.
p
);
m_ref
.
add
(
tmp
);
}
}
void
release
(
Ptr
<
T
>
&
ptr
)
{
void
release
(
Ptr
<
T
>
&
ptr
)
{
m_ref
.
release
(
*
(
Ptr
<
U
>*
)
&
ptr
);
Ptr
<
U
>
tmp
;
tmp
.
i
=
ptr
.
i
;
tmp
.
p
=
static_cast
<
U
*>
(
ptr
.
p
);
m_ref
.
release
(
tmp
);
}
}
};
};
...
...
storage/ndb/src/kernel/vm/Pool.hpp
View file @
5a78db3d
...
@@ -324,7 +324,10 @@ inline
...
@@ -324,7 +324,10 @@ inline
void
void
RecordPool
<
T
,
P
>::
release
(
Ptr
<
T
>
ptr
)
RecordPool
<
T
,
P
>::
release
(
Ptr
<
T
>
ptr
)
{
{
m_pool
.
release
(
*
(
Ptr
<
void
>*
)
&
ptr
);
Ptr
<
void
>
tmp
;
tmp
.
i
=
ptr
.
i
;
tmp
.
p
=
ptr
.
p
;
m_pool
.
release
(
tmp
);
}
}
#endif
#endif
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