aboutsummaryrefslogtreecommitdiffstats
path: root/src/update.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* update: locked delete after update errorMax Kellermann2008-10-091-1/+40
| | | | | | | When a directory failed to update, it was removed from the database, without freeing all children and songs (memory leak), and without locking (race condition). Introduce the functions clear_directory() and delete_directory(), which do both.
* update: removed addToDirectory()Max Kellermann2008-10-091-39/+12
| | | | | | Use updateInDirectory() instead of addToDirectory(). Eliminate a duplicate stat() in updateInDirectory() by calling song_file_update() directly.
* directory: added inline wrappers for accessing childrenMax Kellermann2008-10-091-6/+5
| | | | | Some tiny utilities... wrappers like these may become helpful when we introduce locking.
* directory: moved dirvec struct declaration to dirvec.hMax Kellermann2008-10-091-1/+0
| | | | | No idea why it was created in directory.h, but it should be in dirvec.h.
* directory: fix update in root directoryMax Kellermann2008-10-081-1/+1
| | | | | | | Commit 0bfe7802 broke update for new files in the root directory, because music_root->path was an empty string and not NULL. There were some NULL tests missing. Change them to !isRootDirectory(path) instead of path!=NULL.
* update: fix deadlock in delete_song()Max Kellermann2008-10-081-1/+1
| | | | | | Due to a merge error, reap_update_task() called cond_signal_async() with a locked mutex. That always fails. Use cond_signal_sync() instead.
* directory: eliminate CamelCaseMax Kellermann2008-10-081-6/+6
| | | | CamelCase is ugly, rename the functions.
* database: renamed functions, "db_" prefix and no CamelCaseMax Kellermann2008-10-081-7/+7
| | | | Yet another CamelCase removal patch.
* directory: moved code to database.cMax Kellermann2008-10-081-0/+1
| | | | | | Taming the directory.c monster, part II: move the database management stuff to database. directory.c should only contain code which works on directory objects.
* song: song_file_update() returns boolMax Kellermann2008-10-081-2/+2
| | | | | | Instead of returning 0 or -1, return true on success and false on failure. This seems more natural, and when the C library was designed, there was no "bool" data type.
* song: removed CamelCaseMax Kellermann2008-10-081-7/+7
| | | | CamelCase is ugly... rename all functions.
* song: replaced all song constructorsMax Kellermann2008-10-081-1/+1
| | | | | | Provide separate constructors for creating a remote song, a local song, and one for loading data from a song file. This way, we can add more assertions.
* song: converted typedef Song to struct songMax Kellermann2008-10-081-7/+9
| | | | Again, a data type which can be forward-declared.
* directory: converted typedef Directory to struct directoryMax Kellermann2008-10-081-20/+27
| | | | | The struct can be forward-declared by other headers, which relaxes the header dependencies.
* update: merged exploreDirectory() into updateDirectory()Max Kellermann2008-10-081-47/+13
| | | | | | exploreDirectory() duplicates some code in updateDirectory(). Merge both functions, and use directory_is_empty() to determine whether update or explore mode should be used.
* directory: moved code to update.cMax Kellermann2008-10-081-0/+571
The source directory.c mixes several libraries: directory object management, database management and database update, resulting in a 1000+ line monster. Move the whole database update code to update.c.