~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to storage/myisam/mi_packrec.c

Giant merge.

Show diffs side-by-side

added added

removed removed

Lines of Context:
771
771
                                   uchar *to, uchar *end)
772
772
{
773
773
  if (get_bit(bit_buff))
774
 
    bzero((char*) to,(uint) (end-to));
 
774
    memset((char*) to, 0, (uint) (end-to));
775
775
  else
776
776
  {
777
777
    end-=rec->space_length_bits;
778
778
    decode_bytes(rec,bit_buff,to,end);
779
 
    bzero((char*) end,rec->space_length_bits);
 
779
    memset((char*) end, 0, rec->space_length_bits);
780
780
  }
781
781
}
782
782
 
784
784
                          uchar *end)
785
785
{
786
786
  if (get_bit(bit_buff))
787
 
    bzero((char*) to,(uint) (end-to));
 
787
    memset((char*) to, 0, (uint) (end-to));
788
788
  else
789
789
    decode_bytes(rec,bit_buff,to,end);
790
790
}
793
793
                            uchar *end)
794
794
{
795
795
  if (get_bit(bit_buff))
796
 
    bfill((uchar*) to,(end-to),' ');
 
796
    memset((uchar*) to, ' ', (end-to));
797
797
  else
798
798
    decode_bytes(rec,bit_buff,to,end);
799
799
}
803
803
{
804
804
  uint spaces;
805
805
  if (get_bit(bit_buff))
806
 
    bfill((uchar*) to,(end-to),' ');
 
806
    memset((uchar*) to, ' ', (end-to));
807
807
  else
808
808
  {
809
809
    if (get_bit(bit_buff))
815
815
      }
816
816
      if (to+spaces != end)
817
817
        decode_bytes(rec,bit_buff,to,end-spaces);
818
 
      bfill((uchar*) end-spaces,spaces,' ');
 
818
      memset((uchar*) end-spaces, ' ', spaces);
819
819
    }
820
820
    else
821
821
      decode_bytes(rec,bit_buff,to,end);
835
835
    }
836
836
    if (to+spaces != end)
837
837
      decode_bytes(rec,bit_buff,to,end-spaces);
838
 
    bfill((uchar*) end-spaces,spaces,' ');
 
838
    memset((uchar*) end-spaces, ' ', spaces);
839
839
  }
840
840
  else
841
841
    decode_bytes(rec,bit_buff,to,end);
846
846
{
847
847
  uint spaces;
848
848
  if (get_bit(bit_buff))
849
 
    bfill((uchar*) to,(end-to),' ');
 
849
    memset((uchar*) to, ' ', (end-to));
850
850
  else
851
851
  {
852
852
    if ((spaces=get_bits(bit_buff,rec->space_length_bits))+to > end)
856
856
    }
857
857
    if (to+spaces != end)
858
858
      decode_bytes(rec,bit_buff,to,end-spaces);
859
 
    bfill((uchar*) end-spaces,spaces,' ');
 
859
    memset((uchar*) end-spaces, ' ', spaces);
860
860
  }
861
861
}
862
862
 
871
871
  }
872
872
  if (to+spaces != end)
873
873
    decode_bytes(rec,bit_buff,to,end-spaces);
874
 
  bfill((uchar*) end-spaces,spaces,' ');
 
874
  memset((uchar*) end-spaces, ' ', spaces);
875
875
}
876
876
 
877
877
static void uf_space_prespace_selected(MI_COLUMNDEF *rec, MI_BIT_BUFF *bit_buff,
879
879
{
880
880
  uint spaces;
881
881
  if (get_bit(bit_buff))
882
 
    bfill((uchar*) to,(end-to),' ');
 
882
    memset((uchar*) to, ' ', (end-to));
883
883
  else
884
884
  {
885
885
    if (get_bit(bit_buff))
889
889
        bit_buff->error=1;
890
890
        return;
891
891
      }
892
 
      bfill((uchar*) to,spaces,' ');
 
892
      memset((uchar*) to, ' ', spaces);
893
893
      if (to+spaces != end)
894
894
        decode_bytes(rec,bit_buff,to+spaces,end);
895
895
    }
910
910
      bit_buff->error=1;
911
911
      return;
912
912
    }
913
 
    bfill((uchar*) to,spaces,' ');
 
913
    memset((uchar*) to, ' ', spaces);
914
914
    if (to+spaces != end)
915
915
      decode_bytes(rec,bit_buff,to+spaces,end);
916
916
  }
924
924
{
925
925
  uint spaces;
926
926
  if (get_bit(bit_buff))
927
 
    bfill((uchar*) to,(end-to),' ');
 
927
    memset((uchar*) to, ' ', (end-to));
928
928
  else
929
929
  {
930
930
    if ((spaces=get_bits(bit_buff,rec->space_length_bits))+to > end)
932
932
      bit_buff->error=1;
933
933
      return;
934
934
    }
935
 
    bfill((uchar*) to,spaces,' ');
 
935
    memset((uchar*) to, ' ', spaces);
936
936
    if (to+spaces != end)
937
937
      decode_bytes(rec,bit_buff,to+spaces,end);
938
938
  }
947
947
    bit_buff->error=1;
948
948
    return;
949
949
  }
950
 
  bfill((uchar*) to,spaces,' ');
 
950
  memset((uchar*) to, ' ', spaces);
951
951
  if (to+spaces != end)
952
952
    decode_bytes(rec,bit_buff,to+spaces,end);
953
953
}
957
957
{
958
958
  end-=rec->space_length_bits;
959
959
  decode_bytes(rec,bit_buff,(uchar*) to,end);
960
 
  bzero((char*) end,rec->space_length_bits);
 
960
  memset((char*) end, 0, rec->space_length_bits);
961
961
}
962
962
 
963
963
static void uf_constant(MI_COLUMNDEF *rec,
983
983
                    MI_BIT_BUFF *bit_buff __attribute__((unused)),
984
984
                    uchar *to, uchar *end)
985
985
{
986
 
  bzero((char*) to,(uint) (end-to));
 
986
  memset((char*) to, 0, (uint) (end-to));
987
987
}
988
988
 
989
989
static void uf_blob(MI_COLUMNDEF *rec, MI_BIT_BUFF *bit_buff,
990
990
                    uchar *to, uchar *end)
991
991
{
992
992
  if (get_bit(bit_buff))
993
 
    bzero((uchar*) to,(end-to));
 
993
    memset((uchar*) to, 0, (end-to));
994
994
  else
995
995
  {
996
996
    ulong length=get_bits(bit_buff,rec->space_length_bits);
998
998
    if (bit_buff->blob_pos+length > bit_buff->blob_end)
999
999
    {
1000
1000
      bit_buff->error=1;
1001
 
      bzero((uchar*) to,(end-to));
 
1001
      memset((uchar*) to, 0, (end-to));
1002
1002
      return;
1003
1003
    }
1004
1004
    decode_bytes(rec,bit_buff,bit_buff->blob_pos,bit_buff->blob_pos+length);
1005
1005
    _my_store_blob_length((uchar*) to,pack_length,length);
1006
 
    memcpy_fixed((char*) to+pack_length,(char*) &bit_buff->blob_pos,
1007
 
                 sizeof(char*));
 
1006
    memcpy((char*) to+pack_length,(char*) &bit_buff->blob_pos,
 
1007
           sizeof(char*));
1008
1008
    bit_buff->blob_pos+=length;
1009
1009
  }
1010
1010
}