From 8a7a3e0acc603896b9297fd82f99f91923be1b33 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Zurcher?= <jeremy@asynk.ch>
Date: Fri, 1 Jun 2012 16:45:26 +0200
Subject: Particle, add Eina_Stringshare struct fields : cur_action, cur_door,
 cur_room

---
 src/include/eiotas_particle.h |  3 +++
 src/lib/eiotas_particle.c     | 12 ++++++++++++
 2 files changed, 15 insertions(+)

diff --git a/src/include/eiotas_particle.h b/src/include/eiotas_particle.h
index 52c8011..0f93959 100644
--- a/src/include/eiotas_particle.h
+++ b/src/include/eiotas_particle.h
@@ -44,6 +44,9 @@ struct _Eiotas_Particle {
     Eiotas_Iota         *dst;           /**< current destination */
     Eina_Array          *dsts;          /**< array of destinatinon strings */
     unsigned int        cur_dst;        /**< current destination index */
+    Eina_Stringshare    *cur_action;    /**< action part of the current destination */
+    Eina_Stringshare    *cur_door;      /**< door part of the current destination */
+    Eina_Stringshare    *cur_room;      /**< room part of the current destination */
     Eina_Hash           *payload;       /**< string data carried by this particle */
     Eina_Inlist         *merged;        /**< list of merged particles */
     Eina_Array          *link_fields;   /**< fields used to generate the link value */
diff --git a/src/lib/eiotas_particle.c b/src/lib/eiotas_particle.c
index 6148845..35f3691 100644
--- a/src/lib/eiotas_particle.c
+++ b/src/lib/eiotas_particle.c
@@ -35,6 +35,9 @@ Eiotas_Particle* eiotas_particle_alloc()
     particle->link_fields = eina_array_new(EIOTAS_PARTICLE_ARRAY_STEP);
     particle->link_value = NULL;
     particle->cur_dst = 0;
+    particle->cur_action = NULL;
+    particle->cur_door = NULL;
+    particle->cur_room = NULL;
 
     return particle;
 }
@@ -56,6 +59,9 @@ void eiotas_particle_free(Eiotas_Particle *particle)
     EINA_ARRAY_ITER_NEXT(particle->link_fields, i, s, it) eina_stringshare_del(s);
     eina_array_free(particle->link_fields);
     if(particle->link_value) eina_stringshare_del(particle->link_value);
+    if(particle->cur_action) eina_stringshare_del(particle->cur_action);
+    if(particle->cur_door) eina_stringshare_del(particle->cur_door);
+    if(particle->cur_room) eina_stringshare_del(particle->cur_room);
 
     free(particle);
 }
@@ -80,6 +86,12 @@ EAPI void eiotas_particle_reset(Eiotas_Particle *particle)
     eina_array_clean(particle->link_fields);
     if(particle->link_value) eina_stringshare_del(particle->link_value);
     particle->link_value = NULL;
+    if(particle->cur_action) eina_stringshare_del(particle->cur_action);
+    particle->cur_action = NULL;
+    if(particle->cur_door) eina_stringshare_del(particle->cur_door);
+    particle->cur_door = NULL;
+    if(particle->cur_room) eina_stringshare_del(particle->cur_room);
+    particle->cur_room = NULL;
 }
 
 EAPI void eiotas_particle_init(Eiotas_Particle *particle, Eiotas_Iota *iota)
-- 
cgit v1.1-2-g2b99