+2006-11-10 Otavio Salvador <otavio@debian.org>
+
+ * libparted/filesys.c (ped_file_system_type_unregister): Handle
+ instances where fs_types == NULL and the given fs_type is not in
+ the list of registered file-system types. Some code clean-up.
+ Patch sent by Debarshi 'Rishi' Ray <debarshi.ray@gmail.com>.
+
+ * libparted/disk.c (ped_register_disk_type, ped_unregister_disk_type):
+ Clean-up. Patch sent by Debarshi 'Rishi' Ray <debarshi.ray@gmail.com>.
+
2006-11-08 Otavio Salvador <otavio@debian.org>
* libparted/fs/hfs/probe.c: Fix a segmentation fault when running
static PedDiskType* disk_types = NULL;
void
-ped_register_disk_type (PedDiskType* type)
+ped_register_disk_type (PedDiskType* disk_type)
{
- PED_ASSERT (type != NULL, return);
- PED_ASSERT (type->ops != NULL, return);
- PED_ASSERT (type->name != NULL, return);
+ PED_ASSERT (disk_type != NULL, return);
+ PED_ASSERT (disk_type->ops != NULL, return);
+ PED_ASSERT (disk_type->name != NULL, return);
- ((struct _PedDiskType*) type)->next = disk_types;
- disk_types = (struct _PedDiskType*) type;
+ /* pretend that "next" isn't part of the struct :-) */
+ ((struct _PedDiskType*) disk_type)->next = disk_types;
+ disk_types = (struct _PedDiskType*) disk_type;
}
-void ped_unregister_disk_type (PedDiskType* type)
+void ped_unregister_disk_type (PedDiskType* disk_type)
{
PedDiskType* walk;
PedDiskType* last = NULL;
PED_ASSERT (disk_types != NULL, return);
- PED_ASSERT (type != NULL, return);
+ PED_ASSERT (disk_type != NULL, return);
- for (walk = disk_types; walk; last = walk, walk = walk->next) {
- if (walk == type) break;
- }
+ for (walk = disk_types; walk && walk != disk_type; last = walk, walk = walk->next);
PED_ASSERT (walk != NULL, return);
if (last)
- ((struct _PedDiskType*) last)->next = type->next;
+ ((struct _PedDiskType*) last)->next = disk_type->next;
else
- disk_types = type->next;
+ disk_types = disk_type->next;
}
/**
PedFileSystemType* walk;
PedFileSystemType* last = NULL;
+ PED_ASSERT (fs_types != NULL, return);
PED_ASSERT (fs_type != NULL, return);
- for (walk = fs_types; walk != fs_type; walk = walk->next) {
- if (!walk) return;
- last = walk;
- }
+ for (walk = fs_types; walk && walk != fs_type; last = walk, walk = walk->next);
- if (last) {
+ PED_ASSERT (walk != NULL, return);
+ if (last)
((struct _PedFileSystemType*) last)->next = fs_type->next;
- } else {
- fs_types = fs_types->next;
- }
+ else
+ fs_types = fs_type->next;
}
/**