Merger structs razor_transaction and razor_transaction_resolver.
authorKristian H?gsberg <krh@redhat.com>
Sun Apr 06 19:34:58 2008 -0400 (2008-04-06)
changeset 1916e94ebe58141
parent 190 d8b7dd11813d
child 192 55b177b689c0
Merger structs razor_transaction and razor_transaction_resolver.

Now that both are opaque and hidden in razor.c we can do this cleanup.
razor.c
     1.1 --- a/razor.c	Sun Apr 06 19:24:07 2008 -0400
     1.2 +++ b/razor.c	Sun Apr 06 19:34:58 2008 -0400
     1.3 @@ -1722,9 +1722,10 @@
     1.4  
     1.5  struct razor_transaction {
     1.6  	int package_count, errors;
     1.7 -	struct razor_transaction_package *packages;
     1.8 -
     1.9  	struct razor_set *system, *upstream;
    1.10 +
    1.11 +	struct bitarray syspkgs, uppkgs;
    1.12 +	struct array packages;
    1.13  };
    1.14  
    1.15  struct razor_transaction_package {
    1.16 @@ -1762,13 +1763,6 @@
    1.17  	const char *dep_version;
    1.18  };
    1.19  
    1.20 -struct razor_transaction_resolver {
    1.21 -	struct razor_set *system, *upstream;
    1.22 -	struct bitarray syspkgs, uppkgs;
    1.23 -	struct array packages;
    1.24 -	int errors;
    1.25 -};
    1.26 -
    1.27  static int
    1.28  package_in_set(void *package, struct razor_set *set)
    1.29  {
    1.30 @@ -1784,7 +1778,7 @@
    1.31  }
    1.32  
    1.33  static struct razor_package *
    1.34 -property_provider_package(struct razor_transaction_resolver *trans,
    1.35 +property_provider_package(struct razor_transaction *trans,
    1.36  			  struct razor_property *prop,
    1.37  			  int installed)
    1.38  {
    1.39 @@ -1835,7 +1829,7 @@
    1.40  
    1.41  /* FIXME: merge this into the other property loop in razor_transaction_satisfy */
    1.42  static void
    1.43 -resolve_new_packages(struct razor_transaction_resolver *trans,
    1.44 +resolve_new_packages(struct razor_transaction *trans,
    1.45  		     int start, int end)
    1.46  {
    1.47  	struct razor_property *sp, *up, *sp_end, *up_end;
    1.48 @@ -1935,7 +1929,7 @@
    1.49  }
    1.50  
    1.51  static void
    1.52 -find_all_packages(struct razor_transaction_resolver *trans)
    1.53 +find_all_packages(struct razor_transaction *trans)
    1.54  {
    1.55  	struct razor_transaction_package *tp;
    1.56  	struct razor_package *sp, *spkgs, *send, *up, *upkgs, *uend;
    1.57 @@ -2041,7 +2035,7 @@
    1.58  }
    1.59  
    1.60  static struct razor_package *
    1.61 -find_installed_package_for_file(struct razor_transaction_resolver *trans,
    1.62 +find_installed_package_for_file(struct razor_transaction *trans,
    1.63  				const char *filename)
    1.64  {
    1.65  	struct razor_package *pkg;
    1.66 @@ -2055,7 +2049,7 @@
    1.67  }
    1.68  
    1.69  static struct razor_package *
    1.70 -find_uninstalled_package_for_file(struct razor_transaction_resolver *trans,
    1.71 +find_uninstalled_package_for_file(struct razor_transaction *trans,
    1.72  				  const char *filename)
    1.73  {
    1.74  	struct razor_package *pkg;
    1.75 @@ -2069,7 +2063,7 @@
    1.76  }
    1.77  
    1.78  static struct razor_property *
    1.79 -skip_to_matching_property(struct razor_transaction_resolver *trans,
    1.80 +skip_to_matching_property(struct razor_transaction *trans,
    1.81  			  struct razor_property *match,
    1.82  			  struct razor_property *prop)
    1.83  {
    1.84 @@ -2100,7 +2094,7 @@
    1.85  }
    1.86  
    1.87  static struct razor_package *
    1.88 -find_package_matching(struct razor_transaction_resolver *trans, int installed,
    1.89 +find_package_matching(struct razor_transaction *trans, int installed,
    1.90  		      struct razor_property *prop,
    1.91  		      struct razor_property *req,
    1.92  		      struct razor_set *req_set)
    1.93 @@ -2187,7 +2181,7 @@
    1.94  }
    1.95  
    1.96  static struct razor_package *
    1.97 -find_installed_package_for_property(struct razor_transaction_resolver *trans,
    1.98 +find_installed_package_for_property(struct razor_transaction *trans,
    1.99  				    struct razor_property *sys_start,
   1.100  				    struct razor_property *up_start,
   1.101  				    struct razor_property *req)
   1.102 @@ -2201,7 +2195,7 @@
   1.103  }
   1.104  
   1.105  static struct razor_package *
   1.106 -find_uninstalled_package_for_property(struct razor_transaction_resolver *trans,
   1.107 +find_uninstalled_package_for_property(struct razor_transaction *trans,
   1.108  				      struct razor_property *sys_start,
   1.109  				      struct razor_property *up_start,
   1.110  				      struct razor_property *req)
   1.111 @@ -2215,8 +2209,7 @@
   1.112  }
   1.113  
   1.114  static struct razor_transaction_package *
   1.115 -find_transaction_package(struct razor_transaction_resolver *trans,
   1.116 -			 const char *name)
   1.117 +find_transaction_package(struct razor_transaction *trans, const char *name)
   1.118  {
   1.119  	struct razor_transaction_package *packages;
   1.120  	int count, i;
   1.121 @@ -2232,7 +2225,7 @@
   1.122  
   1.123  /* FIXME? */
   1.124  static int
   1.125 -prop_is_being_installed(struct razor_transaction_resolver *trans,
   1.126 +prop_is_being_installed(struct razor_transaction *trans,
   1.127  			struct razor_property *prop)
   1.128  {
   1.129  	struct list *pkg;
   1.130 @@ -2245,7 +2238,7 @@
   1.131  }
   1.132  
   1.133  static int
   1.134 -prop_is_being_removed(struct razor_transaction_resolver *trans,
   1.135 +prop_is_being_removed(struct razor_transaction *trans,
   1.136  		      struct razor_property *prop)
   1.137  {
   1.138  	struct list *pkg;
   1.139 @@ -2258,7 +2251,7 @@
   1.140  }
   1.141  
   1.142  static int
   1.143 -prop_is_being_updated(struct razor_transaction_resolver *trans,
   1.144 +prop_is_being_updated(struct razor_transaction *trans,
   1.145  		      struct razor_property *prop)
   1.146  {
   1.147  	struct razor_package *packages = trans->system->packages.data;
   1.148 @@ -2277,7 +2270,7 @@
   1.149  }
   1.150  
   1.151  static void
   1.152 -add_transaction_package(struct razor_transaction_resolver *trans,
   1.153 +add_transaction_package(struct razor_transaction *trans,
   1.154  			struct razor_package *new_package,
   1.155  			struct razor_package *old_package,
   1.156  			enum razor_transaction_package_state state,
   1.157 @@ -2403,7 +2396,7 @@
   1.158  }
   1.159  
   1.160  static void
   1.161 -razor_transaction_satisfy(struct razor_transaction_resolver *trans)
   1.162 +razor_transaction_satisfy(struct razor_transaction *trans)
   1.163  {
   1.164  	struct razor_package *spkgs, *upkgs, *pkg;
   1.165  	struct razor_property *sp, *sprops, *sprop_end;
   1.166 @@ -2592,55 +2585,52 @@
   1.167  			 int update_count, const char **update_packages,
   1.168  			 int remove_count, const char **remove_packages)
   1.169  {
   1.170 -	struct razor_transaction_resolver trans;
   1.171 -	struct razor_transaction *ret_trans;
   1.172 +	struct razor_transaction *trans;
   1.173  	struct razor_transaction_package *tp;
   1.174  	int start, end, i;
   1.175  
   1.176 -	trans.system = system;
   1.177 -	trans.upstream = upstream ? upstream : razor_set_create();
   1.178 -	array_init(&trans.packages);
   1.179 -	bitarray_init(&trans.syspkgs, trans.system->packages.size / sizeof (struct razor_package), 1);
   1.180 -	bitarray_init(&trans.uppkgs, trans.upstream->packages.size / sizeof (struct razor_package), 0);
   1.181 -	trans.errors = 0;
   1.182 +	trans = zalloc(sizeof *trans);
   1.183 +
   1.184 +	trans->system = system;
   1.185 +	trans->upstream = upstream ? upstream : razor_set_create();
   1.186 +	array_init(&trans->packages);
   1.187 +	bitarray_init(&trans->syspkgs, trans->system->packages.size / sizeof (struct razor_package), 1);
   1.188 +	bitarray_init(&trans->uppkgs, trans->upstream->packages.size / sizeof (struct razor_package), 0);
   1.189 +	trans->errors = 0;
   1.190  
   1.191  	if (update_count > 0 || remove_count > 0) {
   1.192  		for (i = 0; i < update_count; i++) {
   1.193 -			tp = array_add(&trans.packages, sizeof *tp);
   1.194 +			tp = array_add(&trans->packages, sizeof *tp);
   1.195  			memset(tp, 0, sizeof *tp);
   1.196  			tp->name = update_packages[i];
   1.197  			tp->state = RAZOR_PACKAGE_INSTALL;
   1.198  		}
   1.199  		for (i = 0; i < remove_count; i++) {
   1.200 -			tp = array_add(&trans.packages, sizeof *tp);
   1.201 +			tp = array_add(&trans->packages, sizeof *tp);
   1.202  			memset(tp, 0, sizeof *tp);
   1.203  			tp->name = remove_packages[i];
   1.204  			tp->state = RAZOR_PACKAGE_REMOVE;
   1.205  		}
   1.206  	} else
   1.207 -		find_all_packages(&trans);
   1.208 +		find_all_packages(trans);
   1.209  
   1.210  	start = 0;
   1.211 -	end = trans.packages.size / sizeof (struct razor_transaction_package);
   1.212 +	end = trans->packages.size / sizeof (struct razor_transaction_package);
   1.213  
   1.214  	while (start != end) {
   1.215 -		resolve_new_packages(&trans, start, end);
   1.216 -		if (trans.errors)
   1.217 +		resolve_new_packages(trans, start, end);
   1.218 +		if (trans->errors)
   1.219  			break;
   1.220  
   1.221 -		razor_transaction_satisfy(&trans);
   1.222 +		razor_transaction_satisfy(trans);
   1.223  
   1.224  		start = end;
   1.225 -		end = trans.packages.size / sizeof (struct razor_transaction_package);
   1.226 +		end = trans->packages.size / sizeof (struct razor_transaction_package);
   1.227  	}
   1.228  
   1.229 -	ret_trans = zalloc(sizeof *ret_trans);
   1.230 -	ret_trans->system = trans.system;
   1.231 -	ret_trans->upstream = trans.upstream;
   1.232 -	ret_trans->packages = trans.packages.data;
   1.233 -	ret_trans->package_count = end;
   1.234 -	ret_trans->errors = trans.errors;
   1.235 -	return ret_trans;
   1.236 +	trans->package_count = end;
   1.237 +
   1.238 +	return trans;
   1.239  }
   1.240  
   1.241  const char * const razor_version_relations[] = {
   1.242 @@ -2688,9 +2678,9 @@
   1.243  	struct razor_transaction_package *p, *pend, *tps;
   1.244  	int errors_only = 0;
   1.245  
   1.246 -	tps = trans->packages;
   1.247 -	pend = trans->packages + trans->package_count;
   1.248 -	for (p = trans->packages; p < pend; p++) {
   1.249 +	tps = trans->packages.data;
   1.250 +	pend = trans->packages.data + trans->packages.size;
   1.251 +	for (p = trans->packages.data; p < pend; p++) {
   1.252  		switch (p->state) {
   1.253  		case RAZOR_PACKAGE_INSTALL:
   1.254  			if (errors_only)
   1.255 @@ -2826,8 +2816,8 @@
   1.256  {
   1.257  	struct razor_transaction_package *p, *end;
   1.258  
   1.259 -	end = trans->packages + trans->package_count;
   1.260 -	for (p = trans->packages; p < end; p++) {
   1.261 +	end = trans->packages.data + trans->packages.size;
   1.262 +	for (p = trans->packages.data; p < end; p++) {
   1.263  		if (p->state != RAZOR_PACKAGE_UNSATISFIABLE)
   1.264  			continue;
   1.265  		if (strcmp(name, p->dep_property) != 0 ||
   1.266 @@ -2850,7 +2840,8 @@
   1.267  	struct source *source1, *source2;
   1.268  	char *spool, *ipool, *rpool;
   1.269  	uint32_t *map;
   1.270 -	int p, cmp;
   1.271 +	struct razor_transaction_package *p, *end;
   1.272 +	int cmp;
   1.273  
   1.274  	/* FIXME */
   1.275  	if (trans->errors)
   1.276 @@ -2859,13 +2850,15 @@
   1.277  	/* Sort the transaction packages into two arrays */
   1.278  	array_init(&install_packages);
   1.279  	array_init(&remove_packages);
   1.280 -	for (p = 0; p < trans->package_count; p++) {
   1.281 -		if (trans->packages[p].new_package) {
   1.282 +
   1.283 +	end = trans->packages.data + trans->packages.size;
   1.284 +	for (p = trans->packages.data; p < end; p++) {
   1.285 +		if (p->new_package) {
   1.286  			pkg = array_add(&install_packages, sizeof *pkg);
   1.287 -			*pkg = *trans->packages[p].new_package;
   1.288 +			*pkg = *p->new_package;
   1.289  		} else {
   1.290  			pkg = array_add(&remove_packages, sizeof *pkg);
   1.291 -			*pkg = *trans->packages[p].old_package;
   1.292 +			*pkg = *p->old_package;
   1.293  		}
   1.294  	}
   1.295  	map = razor_qsort_with_data(install_packages.data,
   1.296 @@ -2935,13 +2928,14 @@
   1.297  void
   1.298  razor_transaction_destroy(struct razor_transaction *trans)
   1.299  {
   1.300 -	int p;
   1.301 -
   1.302 -	for (p = 0; p < trans->package_count; p++) {
   1.303 -		if (!trans->packages[p].dep_package &&
   1.304 -		    (trans->packages[p].state == RAZOR_PACKAGE_INSTALL_UNAVAILABLE ||
   1.305 -		     trans->packages[p].state == RAZOR_PACKAGE_REMOVE_NOT_INSTALLED))
   1.306 -			free((char *)trans->packages[p].name);
   1.307 +	struct razor_transaction_package *p, *end;
   1.308 +
   1.309 +	end = trans->packages.data + trans->packages.size;
   1.310 +	for (p = trans->packages.data; p < end; p++) {
   1.311 +		if (!p->dep_package &&
   1.312 +		    (p->state == RAZOR_PACKAGE_INSTALL_UNAVAILABLE ||
   1.313 +		     p->state == RAZOR_PACKAGE_REMOVE_NOT_INSTALLED))
   1.314 +			free((char *)p->name);
   1.315  	}
   1.316  	free(trans);
   1.317