Subversion Repositories freemyipod

Rev

Rev 770 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 770 Rev 782
Line 61... Line 61...
61
    }
61
    }
62
 
62
 
63
    for (i = 0; i < emcore_dir_cache_length; ++i)
63
    for (i = 0; i < emcore_dir_cache_length; ++i)
64
    {
64
    {
65
#ifdef DEBUG2
65
#ifdef DEBUG2
66
        fprintf(stderr, "strcmp([%s], [%s]) == %d\n", name, emcore_dir_entry_cache[i].name, strcmp(name, emcore_dir_entry_cache[i].name));
66
        fprintf(stderr, "cache_get: strcmp([%s], [%s]) == %d\n", name, emcore_dir_entry_cache[i].name, strcmp(name, emcore_dir_entry_cache[i].name));
67
#endif
67
#endif
68
        if (0 == strcmp(name, emcore_dir_entry_cache[i].name))
68
        if (0 == strcmp(name, emcore_dir_entry_cache[i].name))
69
        {
69
        {
70
            return &emcore_dir_entry_cache[i];
70
            return &emcore_dir_entry_cache[i];
71
        }
71
        }
Line 136... Line 136...
136
    fprintf(stderr, "Inserting [%s] to cache\n", emcore_dir_entry_cache[emcore_dir_cache_length].name);
136
    fprintf(stderr, "Inserting [%s] to cache\n", emcore_dir_entry_cache[emcore_dir_cache_length].name);
137
#endif
137
#endif
138
    ++emcore_dir_cache_length;
138
    ++emcore_dir_cache_length;
139
}
139
}
140
 
140
 
-
 
141
void cache_remove(const char* name)
-
 
142
{
-
 
143
    size_t i;
-
 
144
    void* new_ptr;
-
 
145
    
-
 
146
    for (i = 0; i < emcore_dir_cache_length; ++i)
-
 
147
    {
-
 
148
#ifdef DEBUG2
-
 
149
        fprintf(stderr, "cache_remove: strcmp([%s], [%s]) == %d\n", name, emcore_dir_entry_cache[i].name, strcmp(name, emcore_dir_entry_cache[i].name));
-
 
150
#endif
-
 
151
        if (0 == strcmp(name, emcore_dir_entry_cache[i].name))
-
 
152
        {
-
 
153
#ifdef DEBUG2
-
 
154
            fprintf(stderr, "CACHE REMOVE: [%s]\n", name);
-
 
155
#endif
-
 
156
            free(emcore_dir_entry_cache[i].name);
-
 
157
            
-
 
158
            if (emcore_dir_cache_length > i + 1) {
-
 
159
                memcpy(emcore_dir_entry_cache + i, emcore_dir_entry_cache + i + 1, (emcore_dir_cache_length - i - 1) * sizeof(*emcore_dir_entry_cache));
-
 
160
            }
-
 
161
            
-
 
162
            --emcore_dir_cache_length;
-
 
163
            
-
 
164
            new_ptr = realloc(emcore_dir_entry_cache,
-
 
165
                sizeof(*emcore_dir_entry_cache) * (emcore_dir_cache_length));
-
 
166
 
-
 
167
            if (!new_ptr)
-
 
168
            {
-
 
169
                return;
-
 
170
            }
-
 
171
 
-
 
172
            emcore_dir_entry_cache = new_ptr;
-
 
173
        }
-
 
174
    }
-
 
175
 
-
 
176
}
-
 
177
 
141
void cache_destroy(void)
178
void cache_destroy(void)
142
{
179
{
143
#ifdef DEBUG
180
#ifdef DEBUG
144
    fprintf(stderr, "Destroying cache...\n");
181
    fprintf(stderr, "Destroying cache...\n");
145
#endif
182
#endif
Line 151... Line 188...
151
    free(emcore_dir_entry_cache);
188
    free(emcore_dir_entry_cache);
152
#ifdef DEBUG
189
#ifdef DEBUG
153
    fprintf(stderr, "Cache destroyed!\n");
190
    fprintf(stderr, "Cache destroyed!\n");
154
#endif
191
#endif
155
}
192
}
-
 
193
 
-
 
194
#ifdef DEBUG2
-
 
195
void cache_dump(void)
-
 
196
{
-
 
197
    size_t i;
-
 
198
 
-
 
199
    if (!emcore_dir_cache_length)
-
 
200
    {
-
 
201
        return;
-
 
202
    }
-
 
203
 
-
 
204
    for (i = 0; i < emcore_dir_cache_length; ++i)
-
 
205
    {
-
 
206
        fprintf(stderr, "cache_dump: [%s] 0x%08x %d %d %lu\n", emcore_dir_entry_cache[i].name, emcore_dir_entry_cache[i].attributes, emcore_dir_entry_cache[i].size, emcore_dir_entry_cache[i].startcluster, fat_time_to_unix_ts(emcore_dir_entry_cache[i].wrtdate, emcore_dir_entry_cache[i].wrttime));
-
 
207
    }
-
 
208
}
-
 
209
#endif