Browse Source

* added protected queue_is_active() function to determine whether the
complex typed constant expressions queue is currently active

git-svn-id: trunk@31058 -

Jonas Maebe 10 years ago
parent
commit
8d0c5ecf5a
1 changed files with 12 additions and 0 deletions
  1. 12 0
      compiler/aasmcnst.pas

+ 12 - 0
compiler/aasmcnst.pas

@@ -341,6 +341,11 @@ type
      procedure queue_emit_asmsym(sym: tasmsymbol; def: tdef); virtual;
      procedure queue_emit_asmsym(sym: tasmsymbol; def: tdef); virtual;
      { ... an ordinal constant }
      { ... an ordinal constant }
      procedure queue_emit_ordconst(value: int64; def: tdef); virtual;
      procedure queue_emit_ordconst(value: int64; def: tdef); virtual;
+    protected
+     { returns whether queue_init has been called without a corresponding
+       queue_emit_* to finish it }
+     function queue_is_active: boolean;
+    public
 
 
      { finalize the internal asmlist (if necessary) and return it.
      { finalize the internal asmlist (if necessary) and return it.
        This asmlist will be freed when the builder is destroyed, so add its
        This asmlist will be freed when the builder is destroyed, so add its
@@ -1472,6 +1477,7 @@ implementation
        fqueue_offset:=low(fqueue_offset);
        fqueue_offset:=low(fqueue_offset);
      end;
      end;
 
 
+
    procedure ttai_typedconstbuilder.queue_emit_ordconst(value: int64; def: tdef);
    procedure ttai_typedconstbuilder.queue_emit_ordconst(value: int64; def: tdef);
      begin
      begin
        emit_ord_const(value,def);
        emit_ord_const(value,def);
@@ -1479,6 +1485,12 @@ implementation
      end;
      end;
 
 
 
 
+   function ttai_typedconstbuilder.queue_is_active: boolean;
+     begin
+       result:=fqueue_offset<>low(fqueue_offset)
+     end;
+
+
 {****************************************************************************
 {****************************************************************************
                            tai_abstracttypedconst
                            tai_abstracttypedconst
  ****************************************************************************}
  ****************************************************************************}