r20@gandalf: fugalh | 2006-06-02 18:14:26 -0600
authorHans Fugal <hans@fugal.net>
Sat, 3 Jun 2006 00:14:53 +0000 (00:14 +0000)
committerHans Fugal <hans@fugal.net>
Sat, 3 Jun 2006 00:14:53 +0000 (00:14 +0000)
 change_bit bounds check

git-svn-id: svn://localhost/ardour2/trunk@561 d708f5d6-7413-0410-9779-e7cbd77b26cf

libs/ardour/globals.cc

index 4879e373d5ffed2b80210c4823bd1a45d49157d5..23e93ee2a9fa029a665fd9f26ce68156eb57eec8 100644 (file)
@@ -323,10 +323,17 @@ ARDOUR::new_change ()
        Change c;
        static uint32_t change_bit = 1;
 
-       /* XXX catch out-of-range */
+       /* catch out-of-range */
+       if (!change_bit)
+       {
+               fatal << _("programming error: ")
+                       << "change_bit out of range in ARDOUR::new_change()"
+                       << endmsg;
+               /*NOTREACHED*/
+       }
 
        c = Change (change_bit);
-       change_bit <<= 1;
+       change_bit <<= 1;       // if it shifts too far, change_bit == 0
 
        return c;
 }