370
370
bmove_upp((unsigned char*) endpos+length,(unsigned char*) endpos,(uint) (endpos-keypos));
372
memcpy(keypos,keypos-length, (int) (endpos-keypos)+length);
372
memmove(keypos,keypos-length, (int) (endpos-keypos)+length);
373
373
(*keyinfo->store_key)(keyinfo,keypos,&s_temp);
374
374
/* Save pointer to next leaf */
375
375
if (!(*keyinfo->get_key)(keyinfo,share->base.key_reflength,&keypos,ret_key))
437
437
buff_length=mi_getint(buff);
439
439
/* find keys to make a big key-page */
440
memcpy(next_keypos - key_reflength, buff + 2, key_reflength);
440
memmove(next_keypos - key_reflength, buff + 2, key_reflength);
441
441
if (!_mi_get_last_key(info,keyinfo,anc_buff,anc_key,next_keypos,&length)
442
442
|| !_mi_get_last_key(info,keyinfo,leaf_buff,leaf_key,
443
443
leaf_buff+leaf_length,&length))
499
499
bmove_upp((unsigned char*) endpos+t_length,(unsigned char*) endpos,
500
500
(uint) (endpos-keypos));
502
memcpy(keypos,keypos-t_length,(uint) (endpos-keypos)+t_length);
502
memmove(keypos,keypos-t_length,(uint) (endpos-keypos)+t_length);
503
503
(*keyinfo->store_key)(keyinfo,keypos,&s_temp);
504
504
mi_putint(anc_buff,(anc_length+=t_length),key_reflength);
506
506
/* Store key first in new page */
508
memcpy(buff + 2, half_pos - nod_flag, nod_flag);
508
memmove(buff + 2, half_pos - nod_flag, nod_flag);
509
509
if (!(*keyinfo->get_key)(keyinfo,nod_flag,&half_pos,leaf_key))
511
511
t_length=(int) (*keyinfo->pack_key)(keyinfo, nod_flag, (unsigned char*) 0,
513
513
leaf_key, &s_temp);
514
514
/* t_length will always be > 0 for a new page !*/
515
515
length=(uint) ((buff+mi_getint(buff))-half_pos);
516
memcpy(buff + p_length + t_length, half_pos, length);
516
memmove(buff + p_length + t_length, half_pos, length);
517
517
(*keyinfo->store_key)(keyinfo,buff+p_length,&s_temp);
518
518
mi_putint(buff,length+t_length+p_length,nod_flag);
536
536
endpos=buff+buff_length;
538
538
/* find keys to make a big key-page */
539
memcpy(next_keypos - key_reflength, leaf_buff+2, key_reflength);
539
memmove(next_keypos - key_reflength, leaf_buff+2, key_reflength);
540
540
next_keypos=keypos;
541
541
if (!(*keyinfo->get_key)(keyinfo,key_reflength,&next_keypos,
552
552
prev_key, prev_key,
553
553
anc_key, &s_temp);
554
554
if (t_length >= 0)
555
memcpy(endpos+t_length,leaf_buff+p_length, leaf_length-p_length);
555
memmove(endpos+t_length,leaf_buff+p_length, leaf_length-p_length);
556
556
else /* We gained space */
557
memcpy(endpos, leaf_buff+((int) p_length-t_length),
558
leaf_length - p_length + t_length);
557
memmove(endpos, leaf_buff+((int) p_length-t_length),
558
leaf_length - p_length + t_length);
560
560
(*keyinfo->store_key)(keyinfo,endpos,&s_temp);
561
561
buff_length=buff_length+leaf_length-p_length+t_length;
598
598
bmove_upp((unsigned char*) temp_pos+t_length,(unsigned char*) temp_pos,
599
599
(uint) (temp_pos-keypos));
601
memcpy(keypos,keypos-t_length,(uint) (temp_pos-keypos)+t_length);
601
memmove(keypos,keypos-t_length,(uint) (temp_pos-keypos)+t_length);
602
602
(*keyinfo->store_key)(keyinfo,keypos,&s_temp);
603
603
mi_putint(anc_buff,(anc_length+=t_length),key_reflength);
605
605
/* Store first key on new page */
607
memcpy(leaf_buff+2, half_pos - nod_flag, nod_flag);
607
memmove(leaf_buff+2, half_pos - nod_flag, nod_flag);
608
608
if (!(length=(*keyinfo->get_key)(keyinfo,nod_flag,&half_pos,leaf_key)))
610
610
t_length=(*keyinfo->pack_key)(keyinfo,nod_flag, (unsigned char*) 0,
611
611
(unsigned char*) 0, (unsigned char*) 0, leaf_key, &s_temp);
612
612
length=(uint) ((buff+buff_length)-half_pos);
613
memcpy(leaf_buff + p_length + t_length, half_pos, length);
613
memmove(leaf_buff + p_length + t_length, half_pos, length);
614
614
(*keyinfo->store_key)(keyinfo,leaf_buff+p_length,&s_temp);
615
615
mi_putint(leaf_buff,length+t_length+p_length,nod_flag);
616
616
if (_mi_write_keypage(info,keyinfo,leaf_page,DFLT_INIT_HITS,leaf_buff))
754
754
assert(page_end-start >= s_length);
755
memcpy(start, start + s_length, page_end-start-s_length);
755
memmove(start, start + s_length, page_end-start-s_length);
757
757
} /* remove_key */