You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ah...@apache.org on 2016/04/22 21:30:08 UTC
[46/52] [abbrv] [partial] git commit: [flex-falcon]
[refs/heads/feature/maven-migration-test] - move stuff to where I think Maven
wants it
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/07f5a7de/debugger/src/flash/tools/debugger/concrete/DStackContext.java
----------------------------------------------------------------------
diff --git a/debugger/src/flash/tools/debugger/concrete/DStackContext.java b/debugger/src/flash/tools/debugger/concrete/DStackContext.java
deleted file mode 100644
index 855082e..0000000
--- a/debugger/src/flash/tools/debugger/concrete/DStackContext.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package flash.tools.debugger.concrete;
-
-import java.util.ArrayList;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-
-import flash.tools.debugger.Frame;
-import flash.tools.debugger.Location;
-import flash.tools.debugger.NoResponseException;
-import flash.tools.debugger.NotConnectedException;
-import flash.tools.debugger.NotSuspendedException;
-import flash.tools.debugger.Session;
-import flash.tools.debugger.Variable;
-
-public class DStackContext implements Frame
-{
- private DModule m_source;
- private String m_functionSignature;
- private int m_depth;
- private int m_module;
- private int m_line;
- private DVariable m_this;
- private Map<String, DVariable> m_args;
- private Map<String, DVariable> m_locals;
- private List<DVariable> m_scopeChain;
- private DLocation m_location;
- private int m_swfIndex; /* index of swf that we halted within (really part of location) */
- private int m_offset; /* offset within swf where we halted. (really part of location) */
- private boolean m_populated;
- private DVariable m_activationObject;
- private int m_isolateId;
-
- public DStackContext(int module, int line, DModule f, long thisId /* bogus */,
- String functionSignature, int depth, int isolateId)
- {
- m_source = f;
- m_module = module;
- m_line = line;
- // the passed-in 'thisId' seems to always be equal to one, which does more harm than good
- m_this = null;
- m_functionSignature = functionSignature;
- m_depth = depth;
- m_args = new LinkedHashMap<String, DVariable>(); // preserves order
- m_locals = new LinkedHashMap<String, DVariable>(); // preserves order
- m_scopeChain = new ArrayList<DVariable>();
- m_populated = false;
- m_isolateId = isolateId;
- m_location = new DLocation(m_source, line, isolateId);
- }
-
- /*
- * @see flash.tools.debugger.Frame#getLocation()
- */
- public Location getLocation()
- {
- return m_location;
- }
-
- /*
- * @see flash.tools.debugger.Frame#getArguments(flash.tools.debugger.Session)
- */
- public Variable[] getArguments(Session s) throws NoResponseException, NotSuspendedException, NotConnectedException
- {
- populate(s);
- return m_args.values().toArray( new Variable[m_args.size()] );
- }
-
- /*
- * @see flash.tools.debugger.Frame#getLocals(flash.tools.debugger.Session)
- */
- public Variable[] getLocals(Session s) throws NoResponseException, NotSuspendedException, NotConnectedException
- {
- populate(s);
- return m_locals.values().toArray( new Variable[m_locals.size()] );
- }
-
- /*
- * @see flash.tools.debugger.Frame#getThis(flash.tools.debugger.Session)
- */
- public Variable getThis(Session s) throws NoResponseException, NotSuspendedException, NotConnectedException
- {
- populate(s);
- return getThis();
- }
-
- /*
- * @see flash.tools.debugger.Frame#getScopeChain()
- */
- public Variable[] getScopeChain(Session s) throws NoResponseException, NotSuspendedException, NotConnectedException
- {
- populate(s);
- return m_scopeChain.toArray(new Variable[m_scopeChain.size()]);
- }
-
- /* getters */
- public String getCallSignature() { return m_functionSignature; }
- public int getModule() { return m_module; }
- public int getLine() { return m_line; }
- public DVariable getThis() { return m_this; }
-
- /* setters */
- void addArgument(DVariable v) { m_args.put(v.getName(), v); }
- void addLocal(DVariable v) { m_locals.put(v.getName(), v); }
- void addScopeChainEntry(DVariable v) { m_scopeChain.add(v); }
- void removeAllArguments() { m_args.clear(); }
- void removeAllLocals() { m_locals.clear(); m_activationObject = null; }
- void removeAllScopeChainEntries() { m_scopeChain.clear(); }
- void removeAllVariables() { removeAllLocals(); removeAllArguments(); removeAllScopeChainEntries(); }
- void setDepth(int depth) { m_depth = depth; }
- void setThis(DVariable v) { m_this = v; }
- void setSwfIndex(int index) { m_swfIndex = index; }
- void setOffset(int offset) { m_offset = offset; }
- void setIsolateId(int id) { m_isolateId = id; }
- void markStale() { m_populated = false; } // triggers a reload of variables.
-
- /**
- * Removes the specified variable from the list of locals, and
- * remembers that the specified variable is the "activation object"
- * for this frame. See bug 155031.
- */
- void convertLocalToActivationObject(DVariable v)
- {
- m_activationObject = v;
- m_locals.remove(v.getName());
- }
-
- /**
- * Gets the activation object for this frame, or <code>null</code>
- * if none. See bug FB-2674.
- */
- DVariable getActivationObject()
- {
- return m_activationObject;
- }
-
- /**
- * Populate ensures that we have some locals and args. That is
- * that we have triggered a InFrame call to the player
- * @throws NoResponseException
- * @throws NotSuspendedException
- * @throws NotConnectedException
- */
- void populate(Session s) throws NoResponseException, NotSuspendedException, NotConnectedException
- {
- if (!m_populated)
- {
- PlayerSession ses = ((PlayerSession)s);
- ses.requestFrame(m_depth, m_isolateId);
-
- m_populated = true;
- }
- }
-
- public int getIsolateId()
- {
- return m_isolateId;
- }
-}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/07f5a7de/debugger/src/flash/tools/debugger/concrete/DSuspendInfo.java
----------------------------------------------------------------------
diff --git a/debugger/src/flash/tools/debugger/concrete/DSuspendInfo.java b/debugger/src/flash/tools/debugger/concrete/DSuspendInfo.java
deleted file mode 100644
index e051c21..0000000
--- a/debugger/src/flash/tools/debugger/concrete/DSuspendInfo.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package flash.tools.debugger.concrete;
-
-import flash.tools.debugger.SuspendReason;
-
-/**
- * The suspend information object returns information about the
- * current halted state of the Player.
- */
-public class DSuspendInfo
-{
- int m_reason;
- int m_actionIndex; // which script caused the halt
- int m_offset; // offset into the actions that the player has halted
- int m_previousOffset; // previous offset, if any, which lies on the same source line (-1 means unknown)
- int m_nextOffset; // next offset, if any, which lies on the same source line (-1 means unknown)
-
- public DSuspendInfo()
- {
- m_reason = SuspendReason.Unknown;
- m_actionIndex = -1;
- m_offset = -1;
- m_previousOffset = -1;
- m_nextOffset = -1;
- }
-
- public DSuspendInfo(int reason, int actionIndex, int offset, int previousOffset, int nextOffset)
- {
- m_reason = reason;
- m_actionIndex = actionIndex;
- m_offset = offset;
- m_previousOffset = previousOffset;
- m_nextOffset = nextOffset;
- }
-
- public int getReason() { return m_reason; }
- public int getActionIndex() { return m_actionIndex; }
- public int getOffset() { return m_offset; }
- public int getPreviousOffset() { return m_previousOffset; }
- public int getNextOffset() { return m_nextOffset; }
-}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/07f5a7de/debugger/src/flash/tools/debugger/concrete/DSwfInfo.java
----------------------------------------------------------------------
diff --git a/debugger/src/flash/tools/debugger/concrete/DSwfInfo.java b/debugger/src/flash/tools/debugger/concrete/DSwfInfo.java
deleted file mode 100644
index 226dd72..0000000
--- a/debugger/src/flash/tools/debugger/concrete/DSwfInfo.java
+++ /dev/null
@@ -1,323 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package flash.tools.debugger.concrete;
-
-import java.util.Map;
-
-import flash.swf.debug.DebugModule;
-import flash.swf.debug.LineRecord;
-import flash.tools.ActionLocation;
-import flash.tools.debugger.InProgressException;
-import flash.tools.debugger.Isolate;
-import flash.tools.debugger.NoResponseException;
-import flash.tools.debugger.Session;
-import flash.tools.debugger.SourceFile;
-import flash.tools.debugger.SwfInfo;
-import flash.tools.debugger.events.FunctionMetaDataAvailableEvent;
-import flash.util.IntMap;
-
-public class DSwfInfo implements SwfInfo
-{
- private int m_index;
- private long m_id;
- private IntMap m_source;
- private String m_path;
- private String m_url;
- private String m_host;
- private int m_port;
- private boolean m_swdLoading;
- private int m_swfSize;
- private int m_swdSize;
- private int m_bpCount;
- private int m_offsetCount;
- private int m_scriptsExpected;
- private int m_minId; // first script id in the swf
- private int m_maxId; // last script id in this swf
- private byte[] m_swf; // actual swf contents
- private byte[] m_swd; // actual swd contents
- private boolean m_unloaded; // set if the player has unloaded this swf
- private Map<Long,Integer> m_local2Global; // local script id to global script id mapping table
- private int m_numRefreshes; // number of refreshes we have taken
- private int m_vmVersion; // version of the vm
-
- private boolean m_populated; // set if we have already tried to load swf/swd for this info
- private LineFunctionContainer m_container; // used for pulling out detailed info about the swf
-
- private final static String UNKNOWN = PlayerSessionManager.getLocalizationManager().getLocalizedTextString("unknown"); //$NON-NLS-1$
-
- public DSwfInfo(int index, int isolateId)
- {
- // defaults values of zero
- m_id = 0;
- m_index = index;
- m_source = new IntMap();
- m_path = UNKNOWN;
- m_url = UNKNOWN;
- m_host = UNKNOWN;
- m_port = 0;
- m_swdLoading = true;
- m_scriptsExpected = -1; // means not yet set by anyone!
- m_isolateId = isolateId;
- // rest default to null, 0 or false
- }
-
- /** SwfInfo interface */
- public String getPath() { return m_path; }
- public String getUrl() { return m_url; }
- public int getSwfSize() { return m_swfSize; }
- public int getSwdSize(Session s) throws InProgressException { swdLoaded(s); return m_swdSize; }
- public boolean isUnloaded() { return m_unloaded; }
- public boolean isProcessingComplete() { return isPopulated(); }
- public boolean containsSource(SourceFile f) { return m_source.contains(f.getId()); }
-
- /* getters */
- public long getId() { return m_id; }
- public String getHost() { return m_host; }
- public int getPort() { return m_port; }
- public int getSwdSize() { return m_swdSize; }
- public int getRefreshCount() { return m_numRefreshes; }
- public boolean isSwdLoading() { return m_swdLoading; }
- public boolean isPopulated() { return m_populated; }
- public byte[] getSwf() { return m_swf; }
- public byte[] getSwd() { return m_swd; }
- public int getSourceExpectedCount() { return m_scriptsExpected; }
- public int getVmVersion() { return m_vmVersion; }
-
-// public int getBreakpointCount() throws InProgressException { swdLoading(); return m_bpCount; }
-// public int getOffsetCount() { swdLoading(); return m_offsetCount; }
- public int getSourceCount() { return m_source.size(); }
- public int getFirstSourceId() { return m_minId; }
- public int getLastSourceId() { return m_maxId; }
-
- public void setVmVersion(int vmVersion) { m_vmVersion = vmVersion; }
- public void setUnloaded() { m_unloaded = true; }
- public void setSwf(byte[] swf) { m_swf = swf; }
- public void setSwd(byte[] swd) { m_swd = swd; }
- public void setPopulated() { m_swdLoading = false; m_populated = true; } // no more waiting for swd, we're done
- public void setSourceExpectedCount(int c) { m_scriptsExpected = c; }
-
- public void addSource(int i, DModule m) { m_source.put(i, m); }
-
- /**
- * Return the number of sources that we have
- */
- public int getSourceCount(Session s) throws InProgressException
- {
- // only if we don't have it all yet
- // then try to force a load
- if (!hasAllSource())
- swdLoaded(s);
-
- return getSourceCount();
- }
-
- /**
- * Return a list of our sources
- */
- public SourceFile[] getSourceList(Session s) throws InProgressException
- {
- // only if we don't have it all yet
- // then try to force a load
- if (!hasAllSource())
- swdLoaded(s);
-
- return (SourceFile[])m_source.valuesToArray( new SourceFile[m_source.size()] );
- }
-
- /**
- * Make sure that the player has loaded our swd. If not
- * we continue InProgressException to query the player for when its complete.
- * At some point we give up and finally admit that
- * we don't have a swd associated with this swf.
- */
- void swdLoaded(Session s) throws InProgressException
- {
- if (isSwdLoading() && !isUnloaded())
- {
- // make the request
-// System.out.println("Swdloaded " + m_isolateId);
- try { ((PlayerSession)s).requestSwfInfo(m_index, m_isolateId); } catch(NoResponseException nre) {}
-
- // I should now be complete
- if (!m_swdLoading)
- ; // done!
- else if (getSourceExpectedCount() > -1 && m_numRefreshes > 10)
- setPopulated(); // tried too many times, so bail big time, no swd available (only if we already have our expected count)
- else
- throw new InProgressException(); // still loading!!!
- }
- }
-
- /**
- * This method returns true once we have all the scripts
- * that we expect to ever have. We can get the information about
- * how many scripts we should get from two sources, 1) we may
- * get an InSwfInfo message from the player which contains
- * this value and 2) we may get a InNumScript message which
- * contains a script count. A small caveat of course, is that
- * in case 1. we may also not get the a value if the swd has
- * not been fully processed by the player yet.
- */
- public boolean hasAllSource()
- {
- boolean yes = false;
- int expect = getSourceExpectedCount();
- int have = getSourceCount();
-
- // if they are equal we are done, unless
- // our expectation has not been set and have not yet loaded our swd
- if (expect == -1 && isSwdLoading())
- yes = false;
- else if (expect == have)
- yes = true;
- else
- yes = false;
-
- return yes;
- }
-
- public void freshen(long id, String path, String url, String host, long port, boolean swdLoading, long swfSize, long swdSize, long bpCount, long offsetCount, long scriptCount, Map<Long,Integer> map, int minId, int maxId)
- {
- m_id = (int)id;
- m_path = path;
- m_url = url;
- m_host = host;
- m_port = (int)port;
- m_swfSize = (int)swfSize;
- m_swdSize = (int)swdSize;
- m_bpCount = (int)bpCount;
- m_offsetCount = (int)offsetCount;
- m_local2Global = map;
- m_minId = (swdSize > 0) ? minId : 0;
- m_maxId = (swdSize > 0) ? maxId : 0;
- m_swdLoading = swdLoading;
- m_numRefreshes++;
-
- // only touch expected count if swd already loaded
- if (!swdLoading)
- m_scriptsExpected = (int)scriptCount;
- }
-
- /**
- * Locate the given offset within the swf
- */
- public ActionLocation locate(int offset)
- {
- return m_container.locationLessOrEqualTo(offset);
- }
-
- /**
- * Ask the container to locate the next line
- * record following the location specified in the
- * location, without spilling over into the next
- * action list
- */
- public ActionLocation locateSourceLineEnd(ActionLocation l)
- {
- return locateSourceLineEnd(l, -1);
- }
-
- public ActionLocation locateSourceLineEnd(ActionLocation l, int stopAt)
- {
- ActionLocation end = m_container.endOfSourceLine(l);
- if (stopAt > -1 && end.at > stopAt)
- end.at = stopAt;
- return end;
- }
-
- /**
- * Use the local2global script id map that was provided by the
- * Player, so that we can take the local id contained in the swd
- * and convert it to a global one that the player has annointed
- * to this script.
- */
- int local2Global(long id)
- {
- Integer g = m_local2Global.get(id);
- if (g != null)
- id = g.intValue();
-
- return (int) id;
- }
-
- /**
- * Freshen the contents of this object with the given swf info
- * The items that we touch are all swd related, as everything else
- * has arrriave
- */
-
- // temporary while we parse
- DManager m_manager;
- private int m_isolateId = Isolate.DEFAULT_ID;
-
- /**
- * Extracts information out of the SWF/SWD in order to populate
- * function line number tables in SourceFile variabels.
- */
- public void parseSwfSwd(DManager manager)
- {
- m_manager = manager;
-
- // suck in the swf/swd into action lists and then walk the lists
- // looking for LineRecords
- m_container = new LineFunctionContainer(m_swf, m_swd);
- m_container.combForLineRecords(this);
-
- // we are done, sucess or no
- setPopulated();
-
- // log event that we have complete done
- manager.addEvent(new FunctionMetaDataAvailableEvent());
- m_manager = null;
- }
-
- /**
- * This is a callback function from LineFunctionContainer.combForLineRecords()
- * We extract what we want and then update the associated module
- */
- public void processLineRecord(ActionLocation where, LineRecord r)
- {
- int line = r.lineno;
- String func = (where.function == null) ? null : where.function.name;
- DebugModule dm = r.module;
-
- // locate the source file
- int id = -1;
- DModule module;
-
- if (dm == null || where.at == -1)
- ;
- else if ( (id = local2Global(dm.id)) < 0 )
- ;
- else if ( (module = m_manager.getSource(id, Isolate.DEFAULT_ID)) == null )
- ;
- else
- module.addLineFunctionInfo(where.actions.getOffset(where.at), line, func);
- }
-
- /* for debugging */
- @Override
- public String toString() {
- return m_path;
- }
-
- @Override
- public int getIsolateId() {
- return m_isolateId;
- }
-}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/07f5a7de/debugger/src/flash/tools/debugger/concrete/DValue.java
----------------------------------------------------------------------
diff --git a/debugger/src/flash/tools/debugger/concrete/DValue.java b/debugger/src/flash/tools/debugger/concrete/DValue.java
deleted file mode 100644
index 2652ba1..0000000
--- a/debugger/src/flash/tools/debugger/concrete/DValue.java
+++ /dev/null
@@ -1,534 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package flash.tools.debugger.concrete;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import flash.tools.debugger.Isolate;
-import flash.tools.debugger.NoResponseException;
-import flash.tools.debugger.NotConnectedException;
-import flash.tools.debugger.NotSuspendedException;
-import flash.tools.debugger.Session;
-import flash.tools.debugger.Value;
-import flash.tools.debugger.ValueAttribute;
-import flash.tools.debugger.Variable;
-import flash.tools.debugger.VariableType;
-import flash.tools.debugger.expression.Context;
-
-/**
- * Implementation of an ActionScript value.
- */
-public class DValue implements Value
-{
- /** @see VariableType */
- private int m_type;
-
- /** @see Variable#getTypeName() */
- private String m_typeName;
-
- /** @see Variable#getClassName() */
- private String m_className;
-
- /** @see ValueAttribute */
- private int m_attribs;
-
- /** Maps "varname" (without its namespace) to a Variable */
- private Map<String, DVariable> m_members;
-
- /**
- * Either my own ID, or else my parent's ID if I am <code>__proto__</code>.
- */
- long m_nonProtoId;
-
- /**
- * <code>m_value</code> can have one of several possible meanings:
- *
- * <ul>
- * <li> If this variable's value is an <code>Object</code> or a <code>MovieClip</code>,
- * then <code>m_value</code> contains the ID of the <code>Object</code> or
- * <code>MovieClip</code>, stored as a <code>Long</code>. </li>
- * <li> If this variable refers to a Getter which has not yet been invoked, then
- * <code>m_value</code> contains the ID of the Getter, stored as a
- * <code>Long</code>. </li>
- * <li> If this variable's value is <code>undefined</code>, then <code>m_value</code>
- * will be equal to <code>Value.UNDEFINED</code>.
- * <li> Otherwise, this variable's value is a simple type such as <code>int</code> or
- * <code>String</code>, in which case <code>m_value</code> holds the actual value.
- * </ul>
- */
- private Object m_value;
-
- /**
- * The list of classes that contributed members to this object, from
- * the class itself all the way down to Object.
- */
- private String[] m_classHierarchy;
-
- /**
- * How many members of <code>m_classHierarchy</code> actually contributed
- * members to this object.
- */
- private int m_levelsWithMembers;
-
- private Session m_session;
-
- /** Maps duplicate private "varname" to a list of Variable objects */
- private Map<String, List<DVariable>> m_inheritedPrivates;
-
- private int m_isolateId;
-
-
- /**
- * Create a top-level variable which has no parent. This may be used for
- * _global, _root, stack frames, etc.
- *
- * @param id the ID of the variable
- */
- public DValue(long id, int isolateId)
- {
- init(VariableType.UNKNOWN, null, null, 0, new Long(id));
- setIsolateId(isolateId);
- }
-
- /**
- * Create a value.
- *
- * @param type see <code>VariableType</code>
- * @param typeName
- * @param className
- * @param attribs
- * the attributes of this value; see <code>ValueAttribute</code>
- * @param value
- * for an Object or MovieClip, this should be a Long which contains the
- * ID of this variable. For a variable of any other type, such as integer
- * or string, this should be the value of the variable.
- * @param isolateId
- * the worker to which this value belongs
- */
- public DValue(int type, String typeName, String className, int attribs, Object value, int isolateId)
- {
- init(type, typeName, className, attribs, value);
- setIsolateId(isolateId);
- }
-
- /**
- * Constructs a DValue for a primitive value (null, undefined, Boolean, Number, String).
- *
- * There is nothing special about these objects -- it would be just as legitimate for
- * anyone who wants a Value for a primitive to make their own subclass of Value.
- */
- public static DValue forPrimitive(Object primitiveValue, int isolateId)
- {
- if (primitiveValue == null)
- return new DValue(VariableType.NULL, "null", "", 0, primitiveValue, isolateId); //$NON-NLS-1$ //$NON-NLS-2$
- else if (primitiveValue == Value.UNDEFINED)
- return new DValue(VariableType.UNDEFINED, "undefined", "", 0, primitiveValue, isolateId); //$NON-NLS-1$ //$NON-NLS-2$
- else if (primitiveValue instanceof Boolean)
- return new DValue(VariableType.BOOLEAN, "Boolean", "", 0, primitiveValue, isolateId); //$NON-NLS-1$ //$NON-NLS-2$
- else if (primitiveValue instanceof Double)
- return new DValue(VariableType.NUMBER, "Number", "", 0, primitiveValue, isolateId); //$NON-NLS-1$ //$NON-NLS-2$
- else if (primitiveValue instanceof String)
- return new DValue(VariableType.STRING, "String", "", 0, primitiveValue, isolateId); //$NON-NLS-1$ //$NON-NLS-2$
- assert false;
- return null;
- }
-
- /**
- * Initialize a variable.
- *
- * For the meanings of the arguments, see the DVariable constructor.
- */
- private void init(int type, String typeName, String className, int attribs, Object value)
- {
- if (value == null && type == VariableType.UNDEFINED)
- value = Value.UNDEFINED;
-
- m_type = type;
- m_typeName = typeName;
- m_className = className;
- m_attribs = attribs;
- m_value = value;
- m_members = null;
- m_inheritedPrivates = null;
- m_nonProtoId = getId();
- m_isolateId = Isolate.DEFAULT_ID;
- }
-
- public int getIsolateId() {
- return m_isolateId;
- }
-
- public void setIsolateId(int isolateid) {
- m_isolateId = isolateid;
- }
-
- /*
- * @see flash.tools.debugger.Value#getAttributes()
- */
- public int getAttributes()
- {
- return m_attribs;
- }
-
- /*
- * @see flash.tools.debugger.Value#getClassName()
- */
- public String getClassName()
- {
- return m_className;
- }
-
- /*
- * @see flash.tools.debugger.Value#getId()
- */
- public long getId()
- {
- // see if we support an id concept
- if (m_value instanceof Long)
- return ((Long)m_value).longValue();
- else
- return Value.UNKNOWN_ID;
- }
-
- /*
- * @see flash.tools.debugger.Value#getMemberCount(flash.tools.debugger.Session)
- */
- public int getMemberCount(Session s) throws NotSuspendedException,
- NoResponseException, NotConnectedException
- {
- obtainMembers(s);
- return (m_members == null) ? 0 : m_members.size();
- }
-
- /*
- * @see flash.tools.debugger.Value#getMemberNamed(flash.tools.debugger.Session, java.lang.String)
- */
- public Variable getMemberNamed(Session s, String name)
- throws NotSuspendedException, NoResponseException,
- NotConnectedException
- {
- obtainMembers(s);
- return findMember(name);
- }
-
- /*
- * @see flash.tools.debugger.Value#getClassHierarchy(boolean)
- */
- public String[] getClassHierarchy(boolean allLevels) {
- if (allLevels) {
- return m_classHierarchy;
- } else {
- String[] partialClassHierarchy;
-
- if (m_classHierarchy != null)
- {
- partialClassHierarchy = new String[m_levelsWithMembers];
- System.arraycopy(m_classHierarchy, 0, partialClassHierarchy, 0, m_levelsWithMembers);
- }
- else
- {
- partialClassHierarchy = new String[0];
- }
- return partialClassHierarchy;
- }
- }
-
- /* TODO should this really be public? */
- public DVariable findMember(String named)
- {
- if (m_members == null)
- return null;
- else
- return m_members.get(named);
- }
-
- /*
- * @see flash.tools.debugger.Value#getMembers(flash.tools.debugger.Session)
- */
- public Variable[] getMembers(Session s) throws NotSuspendedException,
- NoResponseException, NotConnectedException
- {
- obtainMembers(s);
-
- /* find out the size of the array */
- int count = getMemberCount(s);
- DVariable[] ar = new DVariable[count];
-
- if (count > 0)
- {
- count = 0;
- Iterator<DVariable> itr = m_members.values().iterator();
- while(itr.hasNext())
- {
- DVariable sf = itr.next();
- ar[count++] = sf;
- }
-
- // sort the member list by name
- Arrays.sort(ar);
- }
-
- return ar;
- }
-
- /**
- * WARNING: this call will initiate a call to the session to obtain the members
- * the first time around.
- * @throws NotConnectedException
- * @throws NoResponseException
- * @throws NotSuspendedException
- */
- private void obtainMembers(Session s) throws NotSuspendedException, NoResponseException, NotConnectedException
- {
- if (s == null)
- s = m_session;
- else
- m_session = s;
-
- if (m_members == null && s != null)
- {
- // performing a get on this variable obtains all its members
- long id = getId();
- if (id != Value.UNKNOWN_ID)
- {
- if (((PlayerSession)s).getRawValue(id, m_isolateId) == this)
- ((PlayerSession)s).obtainMembers(id, m_isolateId);
- if (m_members != null)
- {
- Iterator<DVariable> iter = m_members.values().iterator();
- while (iter.hasNext())
- {
- Object next = iter.next();
- if (next instanceof DVariable)
- {
- ((DVariable)next).setSession(s);
- }
- }
- }
- }
- }
- }
-
- public boolean membersObtained()
- {
- return (getId() == UNKNOWN_ID || m_members != null);
- }
-
- public void setMembersObtained(boolean obtained)
- {
- if (obtained)
- {
- if (m_members == null)
- m_members = Collections.emptyMap();
- if (m_inheritedPrivates == null)
- m_inheritedPrivates = Collections.emptyMap();
- }
- else
- {
- m_members = null;
- m_inheritedPrivates = null;
- }
- }
-
- public void addMember(DVariable v)
- {
- if (m_members == null)
- m_members = new HashMap<String, DVariable>();
-
- // if we are a proto member house away our original parent id
- String name = v.getName();
- DValue val = (DValue) v.getValue();
- val.m_nonProtoId = (name != null && name.equals("__proto__")) ? m_nonProtoId : val.getId(); //$NON-NLS-1$ // TODO is this right?
- v.m_nonProtoParentId = m_nonProtoId;
-
- m_members.put(name, v);
- }
-
- public void addInheritedPrivateMember(DVariable v)
- {
- if (m_inheritedPrivates == null)
- m_inheritedPrivates = new HashMap<String, List<DVariable>>();
-
- // if we are a proto member house away our original parent id
- String name = v.getName();
- DValue val = (DValue) v.getValue();
- val.m_nonProtoId = (name != null && name.equals("__proto__")) ? m_nonProtoId : val.getId(); //$NON-NLS-1$ // TODO is this right?
- v.m_nonProtoParentId = m_nonProtoId;
- List<DVariable> resultList = m_inheritedPrivates.get(name);
- if (resultList == null) {
- resultList = new ArrayList<DVariable>();
- resultList.add(v);
- m_inheritedPrivates.put(name, resultList);
- }
- else
- resultList.add(v);
- //m_inheritedPrivates.put(name, v);
- }
-
- public void removeAllMembers()
- {
- m_members = null;
- m_inheritedPrivates = null;
- }
-
- /*
- * @see flash.tools.debugger.Value#getType()
- */
- public int getType()
- {
- return m_type;
- }
-
- /*
- * @see flash.tools.debugger.Value#getTypeName()
- */
- public String getTypeName()
- {
- return m_typeName;
- }
-
- /*
- * @see flash.tools.debugger.Value#getValueAsObject()
- */
- public Object getValueAsObject()
- {
- return m_value;
- }
-
- /*
- * @see flash.tools.debugger.Value#getValueAsString()
- */
- public String getValueAsString()
- {
- return getValueAsString(m_value);
- }
-
- /**
- * @param value an object which might be one of these types:
- * Boolean, Integer, Long, Double, String, Value.UNDEFINED (representing
- * the value 'undefined'); or null.
- */
- public static String getValueAsString(Object value)
- {
- if (value == null)
- return "null"; //$NON-NLS-1$
-
- if (value instanceof Double)
- {
- // Java often formats whole numbers in ugly ways. For example,
- // the number 3 might be formatted as "3.0" and, even worse,
- // the number 12345678 might be formatted as "1.2345678E7" !
- // So, if the number has no fractional part, then we override
- // the default display behavior.
- double doubleValue = ((Double)value).doubleValue();
- long longValue = (long) doubleValue;
- if (doubleValue == longValue)
- return Long.toString(longValue);
- }
-
- return value.toString();
- }
-
- /*
- * @see flash.tools.debugger.Value#isAttributeSet(int)
- */
- public boolean isAttributeSet(int variableAttribute)
- {
- return (m_attribs & variableAttribute) != 0;
- }
-
- public void setTypeName(String s) { m_typeName = s; }
- public void setClassName(String s) { m_className = s; }
- public void setType(int t) { m_type = t; }
- public void setValue(Object o) { m_value = o; }
- public void setAttributes(int f) { m_attribs = f; }
-
- public void setClassHierarchy(String[] classHierarchy, int levelsWithMembers)
- {
- m_classHierarchy = classHierarchy;
- m_levelsWithMembers = levelsWithMembers;
- }
-
- public String membersToString()
- {
- StringBuilder sb = new StringBuilder();
-
- /* find out the size of the array */
- if (m_members == null)
- sb.append(PlayerSessionManager.getLocalizationManager().getLocalizedTextString("empty")); //$NON-NLS-1$
- else
- {
- Iterator<DVariable> itr = m_members.values().iterator();
- while(itr.hasNext())
- {
- DVariable sf = itr.next();
- sb.append(sf);
- sb.append(",\n"); //$NON-NLS-1$
- }
- }
- return sb.toString();
- }
-
- public void setSession(Session s)
- {
- m_session = s;
- }
-
- /**
- * Necessary for expression evaluation.
- * @see Context#lookup(Object)
- */
- @Override
- public String toString() { return getValueAsString(); }
-
- public Variable[] getPrivateInheritedMembers() {
- if (m_inheritedPrivates == null)
- return new DVariable[0];
-
- ArrayList<DVariable> finalList = new ArrayList<DVariable>();
-
- Iterator<List<DVariable>> itr = m_inheritedPrivates.values().iterator();
- while(itr.hasNext())
- {
- List<DVariable> varList = itr.next();
- finalList.addAll(varList);
- }
-
- DVariable[] ar = finalList.toArray(new DVariable[0]);
- // sort the member list by name
- Arrays.sort(ar);
-
- return ar;
- }
-
- public Variable[] getPrivateInheritedMemberNamed(String name) {
- if (m_inheritedPrivates == null)
- return new DVariable[0];
- List<DVariable> list = m_inheritedPrivates.get(name);
- if (list != null) {
- return list.toArray(new Variable[0]);
- }
- return new DVariable[0];
- }
-}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/07f5a7de/debugger/src/flash/tools/debugger/concrete/DVariable.java
----------------------------------------------------------------------
diff --git a/debugger/src/flash/tools/debugger/concrete/DVariable.java b/debugger/src/flash/tools/debugger/concrete/DVariable.java
deleted file mode 100644
index 16d6799..0000000
--- a/debugger/src/flash/tools/debugger/concrete/DVariable.java
+++ /dev/null
@@ -1,517 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package flash.tools.debugger.concrete;
-
-import flash.tools.debugger.NoResponseException;
-import flash.tools.debugger.NotConnectedException;
-import flash.tools.debugger.NotSuspendedException;
-import flash.tools.debugger.PlayerDebugException;
-import flash.tools.debugger.Session;
-import flash.tools.debugger.SessionManager;
-import flash.tools.debugger.Value;
-import flash.tools.debugger.Variable;
-import flash.tools.debugger.VariableAttribute;
-import flash.tools.debugger.VariableType;
-import flash.tools.debugger.events.FaultEvent;
-import flash.tools.debugger.expression.Context;
-
-public class DVariable implements Variable, Comparable
-{
- /**
- * The raw name, exactly as it came back from the Player. For example, this
- * might be <code>mynamespace@12345678::myvar</code>, which indicates that
- * the variable is in namespace "mynamespace", which has atom 12345678.
- */
- private String m_rawName;
-
- /** Just name, without namespace */
- private String m_name;
-
- /** @see Variable#getNamespace() */
- private String m_namespace = ""; //$NON-NLS-1$
-
- /** @see VariableAttribute */
- private int m_attribs;
-
- /**
- * The variable's value.
- */
- protected Value m_value;
-
- /**
- * Whether we have fired the getter for this value. Only applicable if
- * the VariableAttribute.HAS_GETTER attribute is set.
- */
- private boolean m_firedGetter;
-
- /**
- * The class in which this member was actually defined. For example, if class
- * B extends class A, and class A has member variable V, then for variable
- * V, the defining class is always "A", even though the parent variable might
- * be an instance of class B.
- */
- private String m_definingClass;
-
- /**
- * The variable's "level" -- see <code>Variable.getLevel()</code>
- * @see Variable#getLevel()
- */
- private byte m_level;
-
- /**
- * The session object that was used when creating this variable, if known.
- */
- private Session m_session;
-
- /**
- * My parent's <code>m_nonProtoId</code>. In other words, either my
- * parent's ID, or else my parent's parent's ID if my parent is <code>__proto__</code>.
- */
- long m_nonProtoParentId;
-
- /**
- * The worker to which this variable belongs.
- */
- private int m_isolateId;
-
- /**
- * Create a variable and its value.
- *
- * @param name
- * the name of the variable within the context of its parent. For example,
- * when resolving member "bar" of object "foo", the name will be "bar".
- * @param value
- * the variable's value.
- */
- public DVariable(String name, DValue value, int isolateId)
- {
- m_rawName = name;
- m_attribs = value.getAttributes();
-
- // If the name contains "::", then the name is of the form "namespace::name"
- if (name != null)
- {
- /**
- * anirudhs - Compute namespace only for non-public variables.
- * This check helps us avoid cases where public variables have
- * dynamic keys with :: in them. See FB-26126.
- */
- if (!isAttributeSet(VariableAttribute.PUBLIC_SCOPE))
- {
- int doubleColon = name.lastIndexOf("::"); //$NON-NLS-1$
- if (doubleColon >= 0)
- {
- m_namespace = name.substring(0, doubleColon);
- int at = m_namespace.indexOf('@');
- if (at != -1)
- m_namespace = m_namespace.substring(0, at);
-
- name = name.substring(doubleColon+2);
- }
- }
- }
-
- m_name = name;
- m_nonProtoParentId = Value.UNKNOWN_ID;
- m_value = value;
- value.setSession(m_session);
- m_isolateId = isolateId;
- }
-
- /* getters/setters */
- public String getName() { return m_name; }
- public int getAttributes() { return m_attribs; }
- public String getNamespace() { return m_namespace; }
- public int getScope() { return m_attribs & VariableAttribute.SCOPE_MASK; }
- public int getLevel() { return m_level; }
- public String getDefiningClass() { return m_definingClass; }
-
- public int getIsolateId() {
- return m_isolateId;
- }
-
- public void makePublic()
- {
- int attributes = getAttributes();
- attributes &= ~VariableAttribute.SCOPE_MASK;
- attributes |= VariableAttribute.PUBLIC_SCOPE;
- setAttributes(attributes);
-
- m_namespace = ""; //$NON-NLS-1$
- }
-
- /*
- * @see flash.tools.debugger.Variable#getValue()
- */
- public Value getValue()
- {
- if (m_session != null && m_session.getPreference(SessionManager.PREF_INVOKE_GETTERS) != 0) {
- try {
- invokeGetter(m_session);
- } catch (NotSuspendedException e) {
- // fall through -- return raw value without invoking getter
- } catch (NoResponseException e) {
- // fall through -- return raw value without invoking getter
- } catch (NotConnectedException e) {
- // fall through -- return raw value without invoking getter
- }
- }
-
- return m_value;
- }
-
- /*
- * @see flash.tools.debugger.Variable#hasValueChanged(flash.tools.debugger.Session)
- */
- public boolean hasValueChanged(Session s)
- {
- boolean hasValueChanged = false;
- if (s instanceof PlayerSession)
- {
- Value previousParent = ((PlayerSession)s).getPreviousValue(m_nonProtoParentId, m_isolateId);
- if (previousParent != null)
- {
- try {
- Variable previousMember = previousParent.getMemberNamed(null, getName());
- // If the old variable had a getter but never invoked that getter,
- // then it's too late, we don't know the old value.
- if (previousMember instanceof DVariable && !previousMember.needsToInvokeGetter())
- {
- Value previousValue = ((DVariable)previousMember).m_value;
- if (previousValue != null)
- {
- String previousValueAsString = previousValue.getValueAsString();
- if (previousValueAsString != null)
- {
- if (!previousValueAsString.equals(getValue().getValueAsString()))
- {
- hasValueChanged = true;
- }
- }
- }
- }
- } catch (PlayerDebugException e) {
- // ignore
- }
- }
- }
- return hasValueChanged;
- }
-
- /*
- * @see flash.tools.debugger.Session#setScalarMember(int, java.lang.String, int, java.lang.String)
- */
- public FaultEvent setValue(Session s, int type, String value) throws NotSuspendedException, NoResponseException, NotConnectedException
- {
- return ((PlayerSession)s).setScalarMember(m_nonProtoParentId, m_rawName, type, value, m_isolateId);
- }
-
- /*
- * @see flash.tools.debugger.Variable#isAttributeSet(int)
- */
- public boolean isAttributeSet(int att)
- {
- if ((att & VariableAttribute.SCOPE_MASK) == att)
- return (getScope() == att);
- else
- return ( ( (getAttributes() & att) == att) ? true : false );
- }
-
- public void clearAttribute(int att)
- {
- if ((att & VariableAttribute.SCOPE_MASK) == att)
- m_attribs = (m_attribs & ~VariableAttribute.SCOPE_MASK) | VariableAttribute.PUBLIC_SCOPE;
- else
- m_attribs &= ~att;
- }
-
- public void setAttribute(int att)
- {
- if ((att & VariableAttribute.SCOPE_MASK) == att)
- m_attribs = (m_attribs & ~VariableAttribute.SCOPE_MASK) | att;
- else
- m_attribs |= att;
- }
-
- public String getRawName()
- {
- return m_rawName;
- }
-
- /*
- * @see flash.tools.debugger.Variable#getQualifiedName()
- */
- public String getQualifiedName()
- {
- if (m_namespace.length() > 0)
- return m_namespace + "::" + m_name; //$NON-NLS-1$
- else
- return m_name;
- }
-
- /**
- * Comparator interface for sorting Variables
- */
- public int compareTo(Object o2)
- {
- Variable v2 = (Variable)o2;
-
- String n1 = getName();
- String n2 = v2.getName();
-
- return String.CASE_INSENSITIVE_ORDER.compare(n1, n2);
- }
-
- /*
- * @see flash.tools.debugger.Variable#needsToFireGetter()
- */
- public boolean needsToInvokeGetter()
- {
- // If this variable has a getter, and the getter has not yet been invoked
- return (isAttributeSet(VariableAttribute.HAS_GETTER) && m_value.getId() != Value.UNKNOWN_ID && !m_firedGetter);
- }
-
- /*
- * @see flash.tools.debugger.Value#invokeGetter(flash.tools.debugger.Session)
- */
- public void invokeGetter(Session s) throws NotSuspendedException,
- NoResponseException, NotConnectedException {
- if (needsToInvokeGetter())
- {
- PlayerSession playerSession = (PlayerSession) s;
-
- // If this Variable is stale (that is, the program has run since this Variable
- // was created), then we can't invoke the getter.
- if (playerSession.getRawValue(m_value.getId(), m_isolateId) == m_value)
- {
- // temporarily turn on "invoke getters" preference
- int oldInvokeGetters = playerSession.getPreference(SessionManager.PREF_INVOKE_GETTERS);
- playerSession.setPreference(SessionManager.PREF_INVOKE_GETTERS, 1);
-
- try {
- // fire the getter using the original object id. make sure we get something reasonable back
- Value v = playerSession.getValue(m_nonProtoParentId, getRawName(), m_isolateId);
- if (v != null)
- {
- m_value = v;
- m_firedGetter = true;
- if (m_value instanceof DValue)
- ((DValue)m_value).setSession(s);
- }
- } finally {
- playerSession.setPreference(SessionManager.PREF_INVOKE_GETTERS, oldInvokeGetters);
- }
- }
- }
- }
-
- public void setName(String s) { m_name = s; }
- public void setAttributes(int f) { m_attribs = f; ((DValue)getValue()).setAttributes(f); }
-
- public void setSession(Session s)
- {
- m_session = s;
- if (m_value instanceof DValue)
- ((DValue)m_value).setSession(s);
- }
-
- public void setDefiningClass(int level, String definingClass)
- {
- m_level = (byte) Math.min(level, 255);
- m_definingClass = definingClass;
- }
-
- /**
- * Added so that expressions such as <code>a.b.c = e.f</code> work in the command-line interface.
- * @see Context#lookup(Object)
- */
- @Override
- public String toString() { return getValue().getValueAsString(); }
-
- /**
- * Return the internal player string type representation for this variable.
- * Currently used for passing in the type to the Player when doing
- * a set variable command
- */
- public static String typeNameFor(int type)
- {
- String s = "string"; //$NON-NLS-1$
- switch(type)
- {
- case VariableType.NUMBER:
- s = "number"; //$NON-NLS-1$
- break;
-
- case VariableType.BOOLEAN:
- s = "boolean"; //$NON-NLS-1$
- break;
-
- case VariableType.STRING:
- s = "string"; //$NON-NLS-1$
- break;
-
- case VariableType.OBJECT:
- s = "object"; //$NON-NLS-1$
- break;
-
- case VariableType.FUNCTION:
- s = "function"; //$NON-NLS-1$
- break;
-
- case VariableType.MOVIECLIP:
- s = "movieclip"; //$NON-NLS-1$
- break;
-
- case VariableType.NULL:
- s = "null"; //$NON-NLS-1$
- break;
-
- case VariableType.UNDEFINED:
- case VariableType.UNKNOWN:
- default:
- s = "undefined"; //$NON-NLS-1$
- break;
- }
- return s;
- }
-
- /**
- * These values are obtained directly from the Player.
- * See ScriptObject in splay.h.
- */
- public static final int kNormalObjectType = 0;
- public static final int kXMLSocketObjectType = 1;
- public static final int kTextFieldObjectType = 2;
- public static final int kButtonObjectType = 3;
- public static final int kNumberObjectType = 4;
- public static final int kBooleanObjectType = 5;
- public static final int kNativeStringObject = 6;
- public static final int kNativeArrayObject = 7;
- public static final int kDateObjectType = 8;
- public static final int kSoundObjectType = 9;
- public static final int kNativeXMLDoc = 10;
- public static final int kNativeXMLNode = 11;
- public static final int kNativeCameraObject = 12;
- public static final int kNativeMicrophoneObject = 13;
- public static final int kNativeCommunicationObject = 14;
- public static final int kNetConnectionObjectType = 15;
- public static final int kNetStreamObjectType = 16;
- public static final int kVideoObjectType = 17;
- public static final int kTextFormatObjectType = 18;
- public static final int kSharedObjectType = 19;
- public static final int kSharedObjectDataType = 20;
- public static final int kPrintJobObjectType = 21;
- public static final int kMovieClipLoaderObjectType = 22;
- public static final int kStyleSheetObjectType = 23;
- public static final int kFapPacketDummyObject = 24;
- public static final int kLoadVarsObject = 25;
- public static final int kTextSnapshotType = 26;
-
- public static String classNameFor(long clsType, boolean isMc)
- {
- String clsName;
- switch ((int)clsType)
- {
- case kNormalObjectType:
- clsName = (isMc) ? "MovieClip" : "Object"; //$NON-NLS-1$ //$NON-NLS-2$
- break;
- case kXMLSocketObjectType:
- clsName = "XMLSocket"; //$NON-NLS-1$
- break;
- case kTextFieldObjectType:
- clsName = "TextField"; //$NON-NLS-1$
- break;
- case kButtonObjectType:
- clsName = "Button"; //$NON-NLS-1$
- break;
- case kNumberObjectType:
- clsName = "Number"; //$NON-NLS-1$
- break;
- case kBooleanObjectType:
- clsName = "Boolean"; //$NON-NLS-1$
- break;
- case kNativeStringObject:
- clsName = "String"; //$NON-NLS-1$
- break;
- case kNativeArrayObject:
- clsName = "Array"; //$NON-NLS-1$
- break;
- case kDateObjectType:
- clsName = "Date"; //$NON-NLS-1$
- break;
- case kSoundObjectType:
- clsName = "Sound"; //$NON-NLS-1$
- break;
- case kNativeXMLDoc:
- clsName = "XML"; //$NON-NLS-1$
- break;
- case kNativeXMLNode:
- clsName = "XMLNode"; //$NON-NLS-1$
- break;
- case kNativeCameraObject:
- clsName = "Camera"; //$NON-NLS-1$
- break;
- case kNativeMicrophoneObject:
- clsName = "Microphone"; //$NON-NLS-1$
- break;
- case kNativeCommunicationObject:
- clsName = "Communication"; //$NON-NLS-1$
- break;
- case kNetConnectionObjectType:
- clsName = "Connection"; //$NON-NLS-1$
- break;
- case kNetStreamObjectType:
- clsName = "Stream"; //$NON-NLS-1$
- break;
- case kVideoObjectType:
- clsName = "Video"; //$NON-NLS-1$
- break;
- case kTextFormatObjectType:
- clsName = "TextFormat"; //$NON-NLS-1$
- break;
- case kSharedObjectType:
- clsName = "SharedObject"; //$NON-NLS-1$
- break;
- case kSharedObjectDataType:
- clsName = "SharedObjectData"; //$NON-NLS-1$
- break;
- case kPrintJobObjectType:
- clsName = "PrintJob"; //$NON-NLS-1$
- break;
- case kMovieClipLoaderObjectType:
- clsName = "MovieClipLoader"; //$NON-NLS-1$
- break;
- case kStyleSheetObjectType:
- clsName = "StyleSheet"; //$NON-NLS-1$
- break;
- case kFapPacketDummyObject:
- clsName = "FapPacket"; //$NON-NLS-1$
- break;
- case kLoadVarsObject:
- clsName = "LoadVars"; //$NON-NLS-1$
- break;
- case kTextSnapshotType:
- clsName = "TextSnapshot"; //$NON-NLS-1$
- break;
- default:
- clsName = PlayerSessionManager.getLocalizationManager().getLocalizedTextString("unknown") + "<" + clsType + ">"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- break;
- }
- return clsName;
- }
-}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/07f5a7de/debugger/src/flash/tools/debugger/concrete/DWatch.java
----------------------------------------------------------------------
diff --git a/debugger/src/flash/tools/debugger/concrete/DWatch.java b/debugger/src/flash/tools/debugger/concrete/DWatch.java
deleted file mode 100644
index 35b2c41..0000000
--- a/debugger/src/flash/tools/debugger/concrete/DWatch.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package flash.tools.debugger.concrete;
-
-import flash.tools.debugger.Watch;
-
-/**
- * Holder of Watchpoint information
- */
-public class DWatch implements Watch
-{
- long m_parentValueId;
- String m_rawMemberName; // corresponds to Variable.getRawName()
- int m_kind;
- int m_tag;
- int m_isolateId;
-
- public DWatch(long id, String name, int kind, int tag, int isolateId)
- {
- m_parentValueId = id;
- m_rawMemberName = name;
- m_kind = kind;
- m_tag = tag;
- m_isolateId = isolateId;
- }
-
- public long getValueId() { return m_parentValueId; }
- public String getMemberName() { return m_rawMemberName; }
- public int getKind() { return m_kind; }
- public int getTag() { return m_tag; }
-
- public int getIsolateId() {
- return m_isolateId;
- }
-}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/07f5a7de/debugger/src/flash/tools/debugger/concrete/GetVariableFlag.java
----------------------------------------------------------------------
diff --git a/debugger/src/flash/tools/debugger/concrete/GetVariableFlag.java b/debugger/src/flash/tools/debugger/concrete/GetVariableFlag.java
deleted file mode 100644
index f7604ec..0000000
--- a/debugger/src/flash/tools/debugger/concrete/GetVariableFlag.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package flash.tools.debugger.concrete;
-
-/**
- * Flags to the OutGetVariable and OutGetVariableWhichInvokesGetter commands
- * which are sent from the debugger to the player.
- *
- * These values must be kept in sync with 'enum OutGetVariableFlags' in
- * the player's playerdebugger.h file.
- *
- * @author mmorearty
- */
-public interface GetVariableFlag
-{
- /**
- * Indicates that if the variable which is being retrieved is a
- * getter, then the player should invoke the getter and return
- * the result. If this flag is *not* set, then the player will
- * simply return the address of the getter itself.
- */
- public static final int INVOKE_GETTER = 0x00000001;
-
- /**
- * Indicates that if the variable which is being retrieved is a
- * compound object (e.g. an instance of a class, as opposed to
- * a string or int or something like that), then the player
- * should also return all of the child members of the object.
- */
- public static final int ALSO_GET_CHILDREN = 0x00000002;
-
- /**
- * Indicates that when retrieving children, we only want fields
- * and getters -- we are not interested in regular functions.
- * This is an optimization to decrease the amount of network
- * traffic.
- */
- public static final int DONT_GET_FUNCTIONS = 0x00000004;
-
- /**
- * Indicates that when retrieving children, we also want to
- * know exactly which class each child was defined in. For
- * example, if the variable is of class Foo which extends
- * class Bar, we want to know which member fields came from
- * Foo and which ones came from Bar.
- */
- public static final int GET_CLASS_HIERARCHY = 0x00000008;
-}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/07f5a7de/debugger/src/flash/tools/debugger/concrete/IsolatePlayerSession.java
----------------------------------------------------------------------
diff --git a/debugger/src/flash/tools/debugger/concrete/IsolatePlayerSession.java b/debugger/src/flash/tools/debugger/concrete/IsolatePlayerSession.java
deleted file mode 100644
index 887b9c0..0000000
--- a/debugger/src/flash/tools/debugger/concrete/IsolatePlayerSession.java
+++ /dev/null
@@ -1,221 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package flash.tools.debugger.concrete;
-
-import flash.tools.debugger.Frame;
-import flash.tools.debugger.IsolateController;
-import flash.tools.debugger.IsolateSession;
-import flash.tools.debugger.Location;
-import flash.tools.debugger.NoResponseException;
-import flash.tools.debugger.NotConnectedException;
-import flash.tools.debugger.NotSupportedException;
-import flash.tools.debugger.NotSuspendedException;
-import flash.tools.debugger.PlayerDebugException;
-import flash.tools.debugger.SuspendedException;
-import flash.tools.debugger.SwfInfo;
-import flash.tools.debugger.Value;
-import flash.tools.debugger.Variable;
-import flash.tools.debugger.VersionException;
-import flash.tools.debugger.Watch;
-import flash.tools.debugger.expression.PlayerFaultException;
-
-/**
- * Concrete implementation of IsolateSession. Re-routes
- * calls to the *worker() method equivalents.
- * @author anirudhs
- *
- */
-public class IsolatePlayerSession implements IsolateSession {
-
- private IsolateController fSession;
- private int fIsolateId;
-
- public IsolatePlayerSession(int isolateId, IsolateController mainSession) {
- fIsolateId = isolateId;
- fSession = mainSession;
- }
-
- @Override
- public void resume() throws NotSuspendedException, NotConnectedException,
- NoResponseException {
- fSession.resumeWorker(fIsolateId);
- }
-
- @Override
- public void suspend() throws SuspendedException, NotConnectedException,
- NoResponseException {
- fSession.suspendWorker(fIsolateId);
- }
-
- @Override
- public boolean isSuspended() throws NotConnectedException {
- return fSession.isWorkerSuspended(fIsolateId);
- }
-
- @Override
- public int suspendReason() throws NotConnectedException {
- return fSession.suspendReasonWorker(fIsolateId);
- }
-
- @Override
- public Frame[] getFrames() throws NotConnectedException {
- return fSession.getFramesWorker(fIsolateId);
- }
-
- @Override
- public void stepInto() throws NotSuspendedException, NoResponseException,
- NotConnectedException {
- fSession.stepIntoWorker(fIsolateId);
- }
-
- @Override
- public void stepOut() throws NotSuspendedException, NoResponseException,
- NotConnectedException {
- fSession.stepOutWorker(fIsolateId);
- }
-
- @Override
- public void stepOver() throws NotSuspendedException, NoResponseException,
- NotConnectedException {
- fSession.stepOverWorker(fIsolateId);
- }
-
- @Override
- public void stepContinue() throws NotSuspendedException,
- NoResponseException, NotConnectedException {
- fSession.stepContinueWorker(fIsolateId);
- }
-
- @Override
- public SwfInfo[] getSwfs() throws NoResponseException {
- return fSession.getSwfsWorker(fIsolateId);
- }
-
- @Override
- public Location setBreakpoint(int fileId, int lineNum)
- throws NoResponseException, NotConnectedException {
- return fSession.setBreakpointWorker(fileId, lineNum, fIsolateId);
- }
-
- @Override
- public Watch[] getWatchList() throws NoResponseException,
- NotConnectedException {
- return fSession.getWatchListWorker(fIsolateId);
- }
-
- @Override
- public Variable[] getVariableList() throws NotSuspendedException,
- NoResponseException, NotConnectedException, VersionException {
- return fSession.getVariableListWorker(fIsolateId);
- }
-
- @Override
- public Value getValue(long valueId) throws NotSuspendedException,
- NoResponseException, NotConnectedException {
- return fSession.getValueWorker(valueId, fIsolateId);
- }
-
- @Override
- public Value getGlobal(String name) throws NotSuspendedException,
- NoResponseException, NotConnectedException {
- return fSession.getGlobalWorker(name, fIsolateId);
- }
-
- @Override
- public boolean evalIs(Value value, Value type) throws PlayerDebugException,
- PlayerFaultException {
- return fSession.evalIsWorker(value, type, fIsolateId);
- }
-
- @Override
- public boolean evalIs(Value value, String type)
- throws PlayerDebugException, PlayerFaultException {
- return fSession.evalIsWorker(value, type, fIsolateId);
- }
-
- @Override
- public boolean evalInstanceof(Value value, Value type)
- throws PlayerDebugException, PlayerFaultException {
- return fSession.evalInstanceofWorker(value, type, fIsolateId);
- }
-
- @Override
- public boolean evalInstanceof(Value value, String type)
- throws PlayerDebugException, PlayerFaultException {
- return fSession.evalInstanceofWorker(value, type, fIsolateId);
- }
-
- @Override
- public boolean evalIn(Value property, Value object)
- throws PlayerDebugException, PlayerFaultException {
- return fSession.evalInWorker(property, object, fIsolateId);
- }
-
- @Override
- public Value evalAs(Value value, Value type) throws PlayerDebugException,
- PlayerFaultException {
- return fSession.evalAsWorker(value, type, fIsolateId);
- }
-
- @Override
- public Value callFunction(Value thisObject, String functionName,
- Value[] args) throws PlayerDebugException {
- return fSession.callFunctionWorker(thisObject, functionName, args, fIsolateId);
- }
-
- @Override
- public Value callConstructor(String classname, Value[] args)
- throws PlayerDebugException {
- return fSession.callConstructorWorker(classname, args, fIsolateId);
- }
-
- @Override
- public boolean setExceptionBreakpoint(String exceptionClass) throws NoResponseException, NotConnectedException {
- return fSession.setExceptionBreakpointWorker(exceptionClass, fIsolateId);
- }
-
- @Override
- public boolean clearExceptionBreakpoint(String exceptionClass) throws NoResponseException, NotConnectedException {
- return fSession.clearExceptionBreakpointWorker(exceptionClass, fIsolateId);
- }
-
- @Override
- public void breakOnCaughtExceptions(boolean b) throws NotSupportedException, NoResponseException {
- fSession.breakOnCaughtExceptions(b, fIsolateId);
- }
-
- @Override
- public boolean supportsWatchpoints() {
- return fSession.supportsWatchpoints(fIsolateId);
- }
-
- @Override
- public boolean playerCanBreakOnAllExceptions() {
- return fSession.playerCanBreakOnAllExceptions(fIsolateId);
- }
-
- @Override
- public boolean supportsWideLineNumbers() {
- return fSession.supportsWideLineNumbers(fIsolateId);
- }
-
- @Override
- public boolean playerCanCallFunctions() {
- return fSession.playerCanCallFunctions(fIsolateId);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/07f5a7de/debugger/src/flash/tools/debugger/concrete/LineFunctionContainer.java
----------------------------------------------------------------------
diff --git a/debugger/src/flash/tools/debugger/concrete/LineFunctionContainer.java b/debugger/src/flash/tools/debugger/concrete/LineFunctionContainer.java
deleted file mode 100644
index 57d1d31..0000000
--- a/debugger/src/flash/tools/debugger/concrete/LineFunctionContainer.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package flash.tools.debugger.concrete;
-
-import flash.swf.Action;
-import flash.swf.ActionConstants;
-import flash.swf.types.ActionList;
-import flash.swf.actions.DefineFunction;
-import flash.swf.debug.LineRecord;
-import flash.tools.ActionLocation;
-import flash.swf.MovieMetaData;
-import flash.tools.SwfActionContainer;
-import flash.util.Trace;
-
-/**
- * This class extends the SwfActionContainer.
- * It performs a number of passes on the master
- * action list in order to extract line/function
- * mapping information.
- */
-public class LineFunctionContainer extends SwfActionContainer
-{
- public LineFunctionContainer(byte[] swf, byte[] swd)
- {
- super(swf, swd);
-
- // now that we've got all the action lists
- // nicely extracted and lined up we perform a
- // bit of magic which modifies the DefineFunction
- // records augmenting them with function names
- // if they have have none.
- buildFunctionNames(getMasterList(), getHeader().version);
- }
-
- /**
- * Use the action list located in the given location
- * and return a new action location that corresponds
- * to the next line record that is encountered
- * after this location. This routine does not
- * span into another action list.
- */
- public ActionLocation endOfSourceLine(ActionLocation l)
- {
- ActionLocation current = new ActionLocation(l);
- int size = l.actions.size();
- for(int i= l.at+1; i<size; i++)
- {
- // hit a line record => we done
- Action a = l.actions.getAction(i);
- if (a.code == ActionList.sactionLineRecord)
- break;
-
- // hit a function => we are done
- if ( (a.code == ActionConstants.sactionDefineFunction) ||
- (a.code == ActionConstants.sactionDefineFunction2) )
- break;
-
- current.at = i;
- }
- return current;
- }
-
- /**
- * This routine is called from the DSwfInfo object
- * and is used to obtain LineRecord information
- * from the ActionLists
- */
- public void combForLineRecords(DSwfInfo info)
- {
- probeForLineRecords(getMasterList(), new ActionLocation(), info);
- }
-
- /**
- * This routine is called from the DSwfInfo object
- * and is used to obtain LineRecord information
- * from the ActionLists
- *
- * The ActionLocation record is used as a holding
- * container for state as we traverse the lists
- */
- void probeForLineRecords(ActionList list, ActionLocation where, DSwfInfo info)
- {
- int size = list.size();
- for(int i=0; i<size; i++)
- {
- try
- {
- // set our context
- where.at = i;
- where.actions = list;
-
- // pull the action
- Action a = list.getAction(i);
-
- // then see if we need to traverse
- if ( (a.code == ActionConstants.sactionDefineFunction) ||
- (a.code == ActionConstants.sactionDefineFunction2) )
- {
- where.function = (DefineFunction)a;
- probeForLineRecords(((DefineFunction)a).actionList, where, info);
- where.function = null;
- }
- else if (a.code == ActionList.sactionLineRecord)
- {
- // hit a line record, so let's do our callback
- info.processLineRecord(where, (LineRecord)a);
- }
- else if (a instanceof DummyAction)
- {
- // our dummy container, then we drop in
- where.className = ((DummyAction)a).getClassName();
- probeForLineRecords(((DummyAction)a).getActionList(), where, info);
- where.className = null;
- }
- }
- catch(Exception e)
- {
- // this is fairly bad and probably means that we have corrupt line
- // records in the swd, the exception being an ArrayIndexOutOfBoundsException.
- // I've seen this in cases where a bad swc is built by authoring wherein a
- // script id collision occurs and thus the offset table will contain references
- // to line numbers that are non existent in one of the scripts.
- // If its another type of exception...well, hopefully the trace message will
- // help you track it down :)
- if (Trace.error)
- {
- Trace.trace("Error processing ActionList at "+where.at+" at offset "+where.actions.getOffset(where.at)+" in swf "+info.getUrl()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- e.printStackTrace();
- }
- }
- }
- }
-
- /**
- * Go off and fill our DefineFunction records with function names.
- * @see MovieMetaData#walkActions for a discussion on how this is done.
- */
- void buildFunctionNames(ActionList list, int version)
- {
- int size = list.size();
- for(int i=0; i<size; i++)
- {
- DummyAction a = (DummyAction)list.getAction(i);
- MovieMetaData.walkActions( a.getActionList(), version, null, a.getClassName(), null );
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/07f5a7de/debugger/src/flash/tools/debugger/concrete/NetscapePluginPlayer.java
----------------------------------------------------------------------
diff --git a/debugger/src/flash/tools/debugger/concrete/NetscapePluginPlayer.java b/debugger/src/flash/tools/debugger/concrete/NetscapePluginPlayer.java
deleted file mode 100644
index 757c84d..0000000
--- a/debugger/src/flash/tools/debugger/concrete/NetscapePluginPlayer.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package flash.tools.debugger.concrete;
-
-import java.io.File;
-
-/**
- * @author mmorearty
- */
-public class NetscapePluginPlayer extends AbstractPlayer
-{
- /**
- * @param path
- */
- public NetscapePluginPlayer(File browserExe, File path)
- {
- super(browserExe, path);
- }
-
- /*
- * @see flash.tools.debugger.Player#getType()
- */
- public int getType()
- {
- return NETSCAPE_PLUGIN;
- }
-}