diff --git a/main/gbx/gbx_api.c b/main/gbx/gbx_api.c index 1192718a7..f981597bd 100644 --- a/main/gbx/gbx_api.c +++ b/main/gbx/gbx_api.c @@ -1036,7 +1036,7 @@ void GB_Attach(void *object, void *parent, const char *name) void GB_StopEnum(void) { - /* Do not forget than event if we stop the enumeration, the return value + /* Do not forget than even if we stop the enumeration, the return value of _next will be converted */ //VALUE_default(&TEMP, *GAMBAS_ReturnType); diff --git a/main/gbx/gbx_exec_enum.c b/main/gbx/gbx_exec_enum.c index 37d302888..fb431cf9b 100644 --- a/main/gbx/gbx_exec_enum.c +++ b/main/gbx/gbx_exec_enum.c @@ -1,23 +1,23 @@ /*************************************************************************** - gbx_exec_enum.c + gbx_exec_enum.c - (c) 2000-2012 Benoît Minisini + (c) 2000-2012 Benoît Minisini - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - MA 02110-1301, USA. + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + MA 02110-1301, USA. ***************************************************************************/ @@ -28,67 +28,67 @@ /* EXEC_object() ne doit pas faire d'auto-create, car sinon - il renvoie un objet référencé */ + il renvoie un objet référencé */ void EXEC_enum_first(PCODE code) { - OBJECT *object; - CLASS *class; - VALUE *local; - CENUM *old = EXEC_enum; - CENUM *cenum; + OBJECT *object; + CLASS *class; + VALUE *local; + CENUM *old = EXEC_enum; + CENUM *cenum; - local = &BP[code & 0xFF]; + local = &BP[code & 0xFF]; - EXEC_object(local, &class, &object); + EXEC_object(local, &class, &object); if (!object && class->auto_create && !class->enum_static) object = EXEC_auto_create(class, FALSE); - cenum = CENUM_create(object ? (void *)object : (void *)class); + cenum = CENUM_create(object ? (void *)object : (void *)class); - local++; - RELEASE(local); - local->_object.class = OBJECT_class(cenum); - local->_object.object = cenum; - OBJECT_REF(cenum, "EXEC_enum_first"); + local++; + RELEASE(local); + local->_object.class = OBJECT_class(cenum); + local->_object.object = cenum; + OBJECT_REF(cenum, "EXEC_enum_first"); - EXEC_enum = cenum; - EXEC_special(SPEC_FIRST, class, object, 0, TRUE); + EXEC_enum = cenum; + EXEC_special(SPEC_FIRST, class, object, 0, TRUE); EXEC_enum = old; } bool EXEC_enum_next(PCODE code) { - OBJECT *object; - CLASS *class; - bool defined; - VALUE *local; - bool drop = (code & 1); - bool err; - CENUM *old = EXEC_enum; - CENUM *cenum; + OBJECT *object; + CLASS *class; + bool defined; + VALUE *local; + bool drop = (code & 1); + bool err; + CENUM *old = EXEC_enum; + CENUM *cenum; - local = &BP[PC[-1] & 0xFF]; + local = &BP[PC[-1] & 0xFF]; - defined = EXEC_object(local, &class, &object); - cenum = (CENUM *)local[1]._object.object; + defined = EXEC_object(local, &class, &object); + cenum = (CENUM *)local[1]._object.object; - if (!cenum->stop) - { - EXEC_enum = cenum; - err = EXEC_special(SPEC_NEXT, class, object, 0, FALSE); - EXEC_enum = old; - if (err) - THROW(E_ENUM); - - if (!defined && !drop && !cenum->stop) - VALUE_conv_variant(&SP[-1]); - } + if (!cenum->stop) + { + EXEC_enum = cenum; + err = EXEC_special(SPEC_NEXT, class, object, 0, FALSE); + EXEC_enum = old; + if (err) + THROW(E_ENUM); + + if (!defined && !drop && !cenum->stop) + VALUE_conv_variant(&SP[-1]); - if (drop || cenum->stop) - POP(); - - return cenum->stop; + if (drop || cenum->stop) + POP(); + } + + return cenum->stop; }