/ Check-in [1ecb3aa1]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Avoid using a misaligned pointer.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 1ecb3aa13de5c8dc611b814ff34010de0bd90aae73d88aa37a59c4627be4cc2d
User & Date: drh 2018-06-02 19:14:58
Context
2018-06-04
19:24
Version 3.24.0 check-in: c7ee0833 user: drh tags: trunk, release, version-3.24.0
14:10
Merge changes from trunk. check-in: 95fbac39 user: drh tags: apple-osx
13:27
Merge recent changes from trunk. check-in: f8df2a8e user: drh tags: multikey-opt-idea
08:28
Merge latest trunk changes into this branch. check-in: 83d6416a user: dan tags: exp-window-functions
2018-06-02
19:14
Avoid using a misaligned pointer. check-in: 1ecb3aa1 user: drh tags: trunk
19:01
Fix the usage of posix_fallocate() so that it correctly responds to EINVAL returns. check-in: ce2c3e7a user: drh tags: trunk
16:32
Work around a sanitizer warning about a pointer being only 4-byte aligned instead of 8-byte aligned. Closed-Leaf check-in: 1b807b51 user: drh tags: align8-fix
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to src/btree.c.

860
861
862
863
864
865
866
867




868
869
870
871
872
873
874
**
** Calling this routine with a NULL cursor pointer returns false.
**
** Use the separate sqlite3BtreeCursorRestore() routine to restore a cursor
** back to where it ought to be if this routine returns true.
*/
int sqlite3BtreeCursorHasMoved(BtCursor *pCur){
  return pCur->eState!=CURSOR_VALID;




}

/*
** Return a pointer to a fake BtCursor object that will always answer
** false to the sqlite3BtreeCursorHasMoved() routine above.  The fake
** cursor returned must not be used with any other Btree interface.
*/







|
>
>
>
>







860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
**
** Calling this routine with a NULL cursor pointer returns false.
**
** Use the separate sqlite3BtreeCursorRestore() routine to restore a cursor
** back to where it ought to be if this routine returns true.
*/
int sqlite3BtreeCursorHasMoved(BtCursor *pCur){
  assert( EIGHT_BYTE_ALIGNMENT(pCur)
       || pCur==sqlite3BtreeFakeValidCursor() );
  assert( offsetof(BtCursor, eState)==0 );
  assert( sizeof(pCur->eState)==1 );
  return CURSOR_VALID != *(u8*)pCur;
}

/*
** Return a pointer to a fake BtCursor object that will always answer
** false to the sqlite3BtreeCursorHasMoved() routine above.  The fake
** cursor returned must not be used with any other Btree interface.
*/