#define _GNU_SOURCE
#include <string.h>
+#include <assert.h>
+
#include "razor-internal.h"
#include "razor.h"
{
struct razor_package_iterator *pi;
+ assert (set != NULL);
+
pi = zalloc(sizeof *pi);
pi->set = set;
pi->end = set->packages.data + set->packages.size;
struct razor_set *set,
struct razor_property *property)
{
+ assert (pi != NULL);
+ assert (set != NULL);
+ assert (property != NULL);
+
memset(pi, 0, sizeof *pi);
pi->set = set;
pi->index = list_first(&property->packages, &set->package_pool);
{
struct list *index;
+ assert (set != NULL);
+ assert (property != NULL);
+
index = list_first(&property->packages, &set->package_pool);
return razor_package_iterator_create_with_index(set, index);
}
struct razor_entry *entry;
struct list *index;
+ assert (set != NULL);
+ assert (filename != NULL);
+
entry = razor_set_find_entry(set, set->files.data, filename);
if (entry == NULL)
return razor_package_iterator_create_empty(set);
int valid;
struct razor_package *p, *packages;
+ assert (pi != NULL);
+
if (pi->package) {
p = pi->package++;
valid = p < pi->end;
RAZOR_EXPORT void
razor_package_iterator_destroy(struct razor_package_iterator *pi)
{
+ assert (pi != NULL);
+
if (pi->free_index)
free(pi->index);
{
struct razor_property_iterator *pi;
+ assert (set != NULL);
+ assert (package != NULL);
+
pi = zalloc(sizeof *pi);
pi->set = set;
int valid;
struct razor_property *p, *properties;
+ assert (pi != NULL);
+
if (pi->property) {
p = pi->property++;
valid = p < pi->end;
struct razor_package_query *pq;
int count;
+ assert (set != NULL);
+
pq = zalloc(sizeof *pq);
pq->set = set;
count = set->packages.size / sizeof(struct razor_package);
{
struct razor_package *packages;
+ assert (pq != NULL);
+ assert (p != NULL);
+
packages = pq->set->packages.data;
pq->count += pq->vector[p - packages] ^ 1;
pq->vector[p - packages] = 1;
struct razor_package *packages, *p;
const char *name, *version, *arch;
+ assert (pq != NULL);
+ assert (pi != NULL);
+
packages = pq->set->packages.data;
while (razor_package_iterator_next(pi, &p, &name, &version, &arch)) {
pq->count += pq->vector[p - packages] ^ 1;
struct list *index;
int i, j;
+ assert (pq != NULL);
+
set = pq->set;
if (pq->count > 0)
index = zalloc(pq->count * sizeof *index);
#include <errno.h>
#include <ctype.h>
#include <fnmatch.h>
+#include <assert.h>
#include "razor-internal.h"
#include "razor.h"
struct array *array;
int fd;
+ assert (set != NULL);
+ assert (filename != NULL);
+
fd = open(filename, O_RDONLY);
if (fstat(fd, &stat) < 0)
return -1;
struct array *array;
int fd;
+ assert (set != NULL);
+ assert (filename != NULL);
+
fd = open(filename, O_RDONLY);
if (fstat(fd, &stat) < 0)
return -1;
struct array *a;
int i;
+ assert (set != NULL);
+
if (set->header) {
for (i = 0; set->header->sections[i].type; i++)
;
long n1, n2;
int res;
+ assert (s1 != NULL);
+ assert (s2 != NULL);
+
n1 = strtol(s1, (char **) &p1, 10);
n2 = strtol(s2, (char **) &p2, 10);
struct razor_package *p;
const char *name, *version, *arch;
+ assert (set != NULL);
+ assert (package != NULL);
+
pi = razor_package_iterator_create(set);
while (razor_package_iterator_next(pi, &p, &name, &version, &arch)) {
if (strcmp(package, name) == 0)
{
const char *pool = set->details_string_pool.data;
+ assert (set != NULL);
+ assert (package != NULL);
+
if (summary != NULL)
*summary = &pool[package->summary];
if (description != NULL)
RAZOR_EXPORT const char *
razor_property_relation_to_string(struct razor_property *p)
{
+ assert (p != NULL);
+
switch (p->flags & RAZOR_PROPERTY_RELATION_MASK) {
case RAZOR_PROPERTY_LESS:
return "<";
RAZOR_EXPORT const char *
razor_property_type_to_string(struct razor_property *p)
{
+ assert (p != NULL);
+
switch (p->flags & RAZOR_PROPERTY_TYPE_MASK) {
case RAZOR_PROPERTY_REQUIRES:
return "requires";
const char *n, *pool = set->file_string_pool.data;
int len;
+ assert (set != NULL);
+ assert (dir != NULL);
+ assert (pattern != NULL);
+
e = (struct razor_entry *) set->files.data + dir->start;
do {
n = pool + e->name;
struct razor_entry *e;
char buffer[512], *p, *base;
+ assert (set != NULL);
+
if (pattern == NULL || !strcmp (pattern, "/")) {
buffer[0] = '\0';
list_dir(set, set->files.data, buffer, NULL);
uint32_t end;
char buffer[512];
+ assert (set != NULL);
+ assert (name != NULL);
+
package = razor_set_get_package(set, name);
/* TODO: we should return the error to the caller */
if (!package)
const char *name1, *name2, *version1, *version2, *arch1, *arch2;
int res;
+ assert (set != NULL);
+ assert (upstream != NULL);
+
pi1 = razor_package_iterator_create(set);
pi2 = razor_package_iterator_create(upstream);
struct razor_package_query *query;
struct razor_package_iterator *pi;
+ assert (set != NULL);
+ assert (next != NULL);
+
query = razor_package_query_create(set);
razor_set_diff(next, set, add_new_package, query);
struct razor_package_query *query;
struct razor_package_iterator *pi;
+ assert (set != NULL);
+ assert (next != NULL);
+
query = razor_package_query_create(next);
razor_set_diff(set, next, add_new_package, query);
#include <dirent.h>
#include <unistd.h>
#include <fcntl.h>
+#include <assert.h>
+
#include "razor.h"
#include "razor-internal.h"
struct razor_set *set;
char path[PATH_MAX], details_path[PATH_MAX], files_path[PATH_MAX];
+ assert (root != NULL);
+
if (stat(root, &buf) < 0) {
if (mkdir(root, 0777) < 0) {
fprintf(stderr,
{
struct razor_root *image;
+ assert (root != NULL);
+
image = malloc(sizeof *image);
if (image == NULL)
return NULL;
{
char path[PATH_MAX];
+ assert (root != NULL);
+
snprintf(path, sizeof path, "%s%s/%s",
root, razor_root_path, system_repo_filename);
RAZOR_EXPORT struct razor_set *
razor_root_get_system_set(struct razor_root *root)
{
+ assert (root != NULL);
+
return root->system;
}
RAZOR_EXPORT int
razor_root_close(struct razor_root *root)
{
+ assert (root != NULL);
+
razor_set_destroy(root->system);
unlink(root->new_path);
close(root->fd);
RAZOR_EXPORT void
razor_root_update(struct razor_root *root, struct razor_set *next)
{
+ assert (root != NULL);
+ assert (next != NULL);
+
razor_set_write_to_fd(next, root->fd, RAZOR_REPO_FILE_MAIN);
root->next = next;
RAZOR_EXPORT int
razor_root_commit(struct razor_root *root)
{
+ assert (root != NULL);
+
/* Make it so. */
rename(root->new_path, root->path);
printf("renamed %s to %s\n", root->new_path, root->path);
#include <unistd.h>
#include <arpa/inet.h>
#include <zlib.h>
+#include <assert.h>
#include "razor.h"
#include "razor-internal.h"
const char *name;
int fd;
+ assert (filename != NULL);
+
rpm = malloc(sizeof *rpm);
if (rpm == NULL)
return NULL;
char *path;
size_t filesize;
+ assert (rpm != NULL);
+ assert (root != NULL);
+
installer.rpm = rpm;
installer.root = root;
{
int err;
+ assert (rpm != NULL);
+
free(rpm->dirs);
err = munmap(rpm->map, rpm->size);
free(rpm);
const uint32_t *epoch;
char evr[128], buf[16];
+ assert (importer != NULL);
+ assert (rpm != NULL);
+
name = razor_rpm_get_indirect(rpm, RPMTAG_NAME, NULL);
epoch = razor_rpm_get_indirect(rpm, RPMTAG_EPOCH, NULL);
version = razor_rpm_get_indirect(rpm, RPMTAG_VERSION, NULL);
#include <errno.h>
#include <ctype.h>
#include <fnmatch.h>
+#include <assert.h>
#include "razor-internal.h"
#include "razor.h"
razor_transaction_install_package(struct razor_transaction *trans,
struct razor_package *package)
{
+ assert (trans != NULL);
+ assert (package != NULL);
+
transaction_set_install_package(&trans->upstream, package);
trans->changes++;
}
razor_transaction_remove_package(struct razor_transaction *trans,
struct razor_package *package)
{
+ assert (trans != NULL);
+ assert (package != NULL);
+
transaction_set_remove_package(&trans->system, package);
trans->changes++;
}
{
struct razor_package *spkgs, *upkgs, *end;
+ assert (trans != NULL);
+ assert (package != NULL);
+
spkgs = trans->system.set->packages.data;
upkgs = trans->upstream.set->packages.data;
end = trans->system.set->packages.data +
struct razor_package *p;
int i, count;
+ assert (trans != NULL);
+
count = trans->system.set->packages.size / sizeof *p;
for (i = 0; i < count; i++)
trans->system.packages[i] |= TRANS_PACKAGE_UPDATE;
RAZOR_EXPORT void
razor_transaction_destroy(struct razor_transaction *trans)
{
+ assert (trans != NULL);
+
transaction_set_release(&trans->system);
transaction_set_release(&trans->upstream);
free(trans);