Пример #1
0
void buzzvm_destroy(buzzvm_t* vm) {
   /* Get rid of the rng state */
   free((*vm)->rngstate);
   /* Get rid of the stack */
   buzzstrman_destroy(&(*vm)->strings);
   /* Get rid of the global variable table */
   buzzdict_destroy(&(*vm)->gsyms);
   /* Get rid of the local variable tables */
   buzzdarray_destroy(&(*vm)->lsymts);
   /* Get rid of the stack */
   buzzdarray_destroy(&(*vm)->stacks);
   /* Get rid of the heap */
   buzzheap_destroy(&(*vm)->heap);
   /* Get rid of the function list */
   buzzdarray_destroy(&(*vm)->flist);
   /* Get rid of the swarm list */
   buzzdict_destroy(&(*vm)->swarms);
   buzzdarray_destroy(&(*vm)->swarmstack);
   buzzswarm_members_destroy(&((*vm)->swarmmembers));
   /* Get rid of the message queues */
   buzzinmsg_queue_destroy(&(*vm)->inmsgs);
   buzzoutmsg_queue_destroy(&(*vm)->outmsgs);
   /* Get rid of the virtual stigmergy structures */
   buzzdict_destroy(&(*vm)->vstigs);
   /* Get rid of neighbor value listeners */
   buzzdict_destroy(&(*vm)->listeners);
   free(*vm);
   *vm = 0;
}
Пример #2
0
int main() {
   buzzdict_t di = buzzdict_new(4,
                                sizeof(int16_t),
                                sizeof(float),
                                di_hash,
                                di_cmp,
                                NULL);
   int16_t k;
   float d;
   di_print(di);
   int i;
   for(i = 0; i < 10; ++i) {
      k = i;
      d = (100.0f + k);
      fprintf(stdout, "adding (%d, %f)\n", k, d);
      buzzdict_set(di, &k, &d);
      di_print(di);
   }

   k = 5;
   d = (200.0f + k);
   fprintf(stdout, "assigning (%d, %f)\n", k, d);
   buzzdict_set(di, &k, &d);
   di_print(di);

   k = 10;
   d = (200.0f + k);
   fprintf(stdout, "assigning (%d, %f)\n", k, d);
   buzzdict_set(di, &k, &d);
   di_print(di);

   k = 4;
   fprintf(stdout, "removing (%d)\n", k);
   buzzdict_remove(di, &k);
   di_print(di);

   k = 10;
   fprintf(stdout, "removing (%d)\n", k);
   buzzdict_remove(di, &k);
   di_print(di);

   buzzdict_destroy(&di);
   return 0;
}
Пример #3
0
void buzzvstig_destroy(buzzvstig_t* vs) {
   buzzdict_destroy(&((*vs)->data));
   free((*vs)->onconflict);
   free((*vs)->onconflictlost);
   free(*vs);
}
Пример #4
0
void buzzswarm_members_destroy(buzzswarm_members_t* m) {
   buzzdict_destroy(m);
}