• unknown's avatar
    Injecting more "const" declarations into code which does not change · d68922e6
    unknown authored
    pointed data.
    I ran gcc -Wcast-qual on storage/maria, this identified un-needed casts,
    a couple of functions which said they had a const parameter though
    they changed the pointed content! This is fixed here. Some suspicious
    places receive a comment.
    The original intention of running -Wcast-qual was to find what code
    changes R-tree keys: I added const words, but hidden casts
    like those of int2store (casts target to (uint16*)) removed const
    checking; -Wcast-qual helped find those hidden casts.
    Log handler does not change the content pointed by LEX_STRING::str it
    receives, so we now use a struct which has a const inside, to emphasize
    this and be able to pass "const uchar*" buffers to log handler
    without fear of their content being changed by it.
    One-line fix for a merge glitch (when merging from MyISAM).
    
    
    include/m_string.h:
      As Maria's log handler uses LEX_STRING but never changes the content
      pointed by LEX_STRING::str, and assigns uchar* into this member most
      of the time, we introduce a new struct LEX_CUSTRING
      (C const U unsigned) for the log handler.
    include/my_global.h:
      In macros which read pointed content: use const pointers so that
      gcc -Wcast-qual does not warn about casting a const pointer to non-const.
    include/my_handler.h:
      In macros which read pointed content: use const pointers so that
      gcc -Wcast-qual does not warn about casting a const pointer to non-const.
      ha_find_null() does not change *a.
    include/my_sys.h:
      insert_dynamic() does not change *element.
    include/myisampack.h:
      In macros which read pointed content: use const pointers so that
      gcc -Wcast-qual does not warn about casting a const pointer to non-const.
    mysys/array.c:
      insert_dynamic() does not change *element
    mysys/my_handler.c:
      ha_find_null() does not change *a
    storage/maria/ma_bitmap.c:
      Log handler receives const strings now
    storage/maria/ma_blockrec.c:
      Log handler receives const strings now.
      _ma_apply_undo_row_delete/update() do change *header.
    storage/maria/ma_blockrec.h:
      correct prototype
    storage/maria/ma_check.c:
      Log handler receives const strings now. Un-needed casts
    storage/maria/ma_checkpoint.c:
      Log handler receives const strings now
    storage/maria/ma_checksum.c:
      unneeded cast
    storage/maria/ma_commit.c:
      Log handler receives const strings now
    storage/maria/ma_create.c:
      Log handler receives const strings now
    storage/maria/ma_dbug.c:
      fixing warning of gcc -Wcast-qual
    storage/maria/ma_delete.c:
      Log handler receives const strings now
    storage/maria/ma_delete_all.c:
      Log handler receives const strings now
    storage/maria/ma_delete_table.c:
      Log handler receives const strings now
    storage/maria/ma_dynrec.c:
      fixing some warnings of gcc -Wcast-qual. Unneeded casts removed.
      Comment about function which lies.
    storage/maria/ma_ft_parser.c:
      fix for warnings of gcc -Wcast-qual, removing unneeded casts
    storage/maria/ma_ft_update.c:
      less casts, comment
    storage/maria/ma_key.c:
      less casts, stay const (warnings of gcc -Wcast-qual)
    storage/maria/ma_key_recover.c:
      Log handler receives const strings now
    storage/maria/ma_loghandler.c:
      Log handler receives const strings now
    storage/maria/ma_loghandler.h:
      Log handler receives const strings now
    storage/maria/ma_loghandler_lsn.h:
      In macros which read pointed content: use const pointers so that
      gcc -Wcast-qual does not warn about casting a const pointer to non-const.
    storage/maria/ma_page.c:
      Log handler receives const strings now; more const
    storage/maria/ma_recovery.c:
      Log handler receives const strings now
    storage/maria/ma_rename.c:
      Log handler receives const strings now
    storage/maria/ma_rt_index.c:
      more const, to emphasize that functions don't change pointed content.
      best_key= NULL was forgotten during merge from MyISAM a few days ago,
      was causing a Valgrind warning
    storage/maria/ma_rt_index.h:
      new proto
    storage/maria/ma_rt_key.c:
      more const
    storage/maria/ma_rt_key.h:
      new proto
    storage/maria/ma_rt_mbr.c:
      more const for functions which deserve it
    storage/maria/ma_rt_mbr.h:
      new prototype
    storage/maria/ma_rt_split.c:
      make const what is not changed.
    storage/maria/ma_search.c:
      un-needed casts, more const
    storage/maria/ma_sp_key.c:
      more const
    storage/maria/ma_unique.c:
      un-needed casts.
    storage/maria/ma_write.c:
      Log handler receives const strings now
    storage/maria/maria_def.h:
      some more const
    storage/maria/unittest/ma_test_loghandler-t.c:
      Log handler receives const strings now
    storage/maria/unittest/ma_test_loghandler_first_lsn-t.c:
      Log handler receives const strings now
    storage/maria/unittest/ma_test_loghandler_max_lsn-t.c:
      Log handler receives const strings now
    storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
      Log handler receives const strings now
    storage/maria/unittest/ma_test_loghandler_multithread-t.c:
      Log handler receives const strings now
    storage/maria/unittest/ma_test_loghandler_noflush-t.c:
      Log handler receives const strings now
    storage/maria/unittest/ma_test_loghandler_nologs-t.c:
      Log handler receives const strings now
    storage/maria/unittest/ma_test_loghandler_pagecache-t.c:
      Log handler receives const strings now
    storage/maria/unittest/ma_test_loghandler_purge-t.c:
      Log handler receives const strings now
    d68922e6
my_handler.c 19.3 KB