emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] 07/16: * packages/tNFA/tNFA.el (tNFA--DFA-state-create): Avoid ad


From: Stefan Monnier
Subject: [elpa] 07/16: * packages/tNFA/tNFA.el (tNFA--DFA-state-create): Avoid add-to-list on local var.
Date: Wed, 15 Oct 2014 21:05:56 +0000

monnier pushed a commit to branch master
in repository elpa.

commit e376f16202e30f2eeaa5c2e19de2818a263bb535
Author: Stefan Monnier <address@hidden>
Date:   Wed Oct 15 16:36:24 2014 -0400

    * packages/tNFA/tNFA.el (tNFA--DFA-state-create): Avoid add-to-list
    on local var.
---
 packages/tNFA/tNFA.el |   16 +++++++---------
 1 files changed, 7 insertions(+), 9 deletions(-)

diff --git a/packages/tNFA/tNFA.el b/packages/tNFA/tNFA.el
index 8ef3682..5a13e41 100644
--- a/packages/tNFA/tNFA.el
+++ b/packages/tNFA/tNFA.el
@@ -1,6 +1,6 @@
 ;;; tNFA.el --- Tagged non-deterministic finite-state automata
 
-;; Copyright (C) 2008-2010, 2012   Free Software Foundation, Inc
+;; Copyright (C) 2008-2010, 2012, 2014   Free Software Foundation, Inc
 
 ;; Author: Toby Cubitt <address@hidden>
 ;; Version: 0.1.1
@@ -333,8 +333,7 @@
 (defun* tNFA--DFA-state-create (state-list state-pool &key (test 'eq))
   ;; create DFA state and add it to the state pool
   (let ((DFA-state (tNFA--DFA-state--create
-                   state-list state-pool :test test))
-       tmp-list)
+                   state-list state-pool :test test)))
     (puthash state-list DFA-state (tNFA--DFA-state-pool DFA-state))
 
     (dolist (state state-list)
@@ -342,16 +341,15 @@
       (cond
        ;; literal state: add literal transition
        ((eq (tNFA--state-type state) 'literal)
-       (setq tmp-list (tNFA--DFA-state-transitions DFA-state))
-       (add-to-list 'tmp-list (cons (tNFA--state-label state) t))
-       (setf (tNFA--DFA-state-transitions DFA-state) tmp-list))
+       (pushnew (cons (tNFA--state-label state) t)
+                 (tNFA--DFA-state-transitions DFA-state)
+                 :test #'equal))
 
        ;; character alternative: add transitions for all alternatives
        ((eq (tNFA--state-type state) 'char-alt)
        (dolist (c (tNFA--state-label state))
-         (setq tmp-list (tNFA--DFA-state-transitions DFA-state))
-         (add-to-list 'tmp-list (cons c t))
-         (setf (tNFA--DFA-state-transitions DFA-state) tmp-list)))
+         (pushnew (cons c t) (tNFA--DFA-state-transitions DFA-state)
+                   :test #'equal)))
 
        ;; wildcard or negated character alternative: add wildcard
        ;; transistion



reply via email to

[Prev in Thread] Current Thread [Next in Thread]