Lines Matching refs:item

566 		small_data* item = node->SmallDataStart();
569 for (; !item->IsLast(node); item = item->Next(), index++) {
571 if (*item->Name() == FILE_NAME_NAME || !strcmp(name, item->Name()))
574 if (max == NULL || max->Size() < item->Size()) {
576 max = item;
581 if (bytes < (int32)item->Size())
585 if (item->IsLast(node) || (int32)item->Size() < bytes || max == NULL)
594 status_t status = CreateAttribute(transaction, item->Name(),
595 item->Type(), &attribute);
599 size_t length = item->DataSize();
600 status = attribute->WriteAt(transaction, 0, item->Data(), &length);
626 Inode::_RemoveSmallData(bfs_inode* node, small_data* item, int32 index)
630 small_data* next = item->Next();
642 memmove(item, next, size);
646 last = (small_data*)((uint8*)last - ((uint8*)next - (uint8*)item));
649 memset(item, 0, item->Size());
673 // search for the small_data item
675 small_data* item = node->SmallDataStart();
677 while (!item->IsLast(node) && strcmp(item->Name(), name)) {
678 item = item->Next();
682 if (item->IsLast(node))
689 status = _RemoveSmallData(node, item, index);
734 // Find the last item or one with the same name we have to add
735 small_data* item = node->SmallDataStart();
737 while (!item->IsLast(node) && strcmp(item->Name(), name)) {
738 item = item->Next();
744 if (!item->IsLast(node)) {
746 small_data* last = item;
751 if (item->data_size > pos + length
753 || ((uint8*)last + pos + length - item->DataSize())
757 if (force && ((uint8*)last + pos + length - item->DataSize())
761 uint32 needed = pos + length - item->DataSize() -
770 item = node->SmallDataStart();
772 while (!item->IsLast(node) && strcmp(item->Name(), name)) {
773 item = item->Next();
777 last = item;
782 size_t oldDataSize = item->DataSize();
786 if (pos + length != item->DataSize()) {
788 small_data* next = item->Next();
790 memmove((uint8*)item + spaceNeeded, next,
797 - ((uint8*)next - ((uint8*)item + spaceNeeded)));
803 item->data_size = HOST_ENDIAN_TO_BFS_INT16(pos + length);
806 item->type = HOST_ENDIAN_TO_BFS_INT32(type);
810 memset(item->Data() + oldDataSize, 0, pos - oldDataSize);
812 if (user_memcpy(item->Data() + pos, data, length) < B_OK)
814 item->Data()[pos + length] = '\0';
824 if ((uint8*)item + spaceNeeded > (uint8*)node + fVolume->InodeSize()) {
833 // get new last item!
834 item = node->SmallDataStart();
836 while (!item->IsLast(node)) {
837 item = item->Next();
842 memset(item, 0, spaceNeeded);
843 item->type = HOST_ENDIAN_TO_BFS_INT32(type);
844 item->name_size = HOST_ENDIAN_TO_BFS_INT16(nameLength);
845 item->data_size = HOST_ENDIAN_TO_BFS_INT16(length);
846 strcpy(item->Name(), name);
847 if (user_memcpy(item->Data() + pos, data, length) < B_OK)
851 item = item->Next();
852 if (!item->IsLast(node))
853 memset(item, 0, (uint8*)node + fVolume->InodeSize() - (uint8*)item);
893 // is already last item?
2892 const small_data* item = ((bfs_inode*)node)->SmallDataStart();
2897 for (; !item->IsLast(node); item = item->Next(), index++) {
2898 if (item->NameSize() == FILE_NAME_NAME_LENGTH
2899 && *item->Name() == FILE_NAME_NAME)
2906 if (!item->IsLast(node)) {
2907 strncpy(name, item->Name(), B_FILE_NAME_LENGTH);
2908 *_type = item->Type();
2909 *_length = item->NameSize();
2967 // fCurrentSmallData points already to the next item