public BreakAction(LocationCollection c) { m_where = c; Flash.Tools.Debugger.SourceFile generatedAux = m_where.first().File; // force NullPointerException if l == null m_status = RESOLVED; init(); }
/// <summary> Notification that a breakpoint has been removed (or disabled) /// at the CLI level and we may need to remove it at the session level /// </summary> internal virtual void breakDisableRequest(LocationCollection col) { // now let's comb the table looking to see if this breakpoint should // be removed at the session level. Use the first entry as a template // for which location we are talking about. int at = 0; bool hit = false; Location l = col.first(); do { at = breakpointIndexOf(l, at); if (at > - 1) { if (breakpointAt(at).Enabled) hit = true; else at++; // our location match is not enabled but let's continue after the hit } } while (at > - 1 && !hit); // no one matches, so let's remove it at the session level if (!hit) { foreach (Location loc in col) { try { m_session.clearBreakpoint(loc); } catch (NoResponseException) { } } } }
/// <summary> Enable a breakpoint using the SourceFile as a template /// for the source file in which the breakpoint should be /// set. /// </summary> internal virtual LocationCollection enableBreak(SourceFile f, int line) { LocationCollection col = new LocationCollection(); bool singleSwfBreakpoint = m_fileInfo.SwfFilterOn; SwfInfo swf = m_fileInfo.getSwfFilter(); // If we have a swf filter enabled then we only want to // set a breakpoint in a specific swf not all of them try { if (singleSwfBreakpoint) { Location l = findAndEnableBreak(swf, f, line); col.add(l); } else { // walk all swfs looking to add this breakpoint SwfInfo[] swfs = m_fileInfo.Swfs; for (int i = 0; i < swfs.Length; i++) { swf = swfs[i]; if (swf != null) { Location l = findAndEnableBreak(swf, f, line); if (l != null) col.add(l); } } } } catch (InProgressException) { if (Trace.error) Trace.trace(((swf == null)?"SWF ":swf.Url) + " still loading, breakpoint at " + f.Name + ":" + line + " not set"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ } return col; }