* added protected queue_is_active() function to determine whether the

complex typed constant expressions queue is currently active

git-svn-id: trunk@31058 -
This commit is contained in:
Jonas Maebe 2015-06-13 22:48:31 +00:00
parent bcd04953c2
commit 8d0c5ecf5a

View File

@ -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
****************************************************************************} ****************************************************************************}