[前][次][番号順一覧][スレッド一覧]

ruby-changes:24387

From: nobu <ko1@a...>
Date: Wed, 18 Jul 2012 16:44:28 +0900 (JST)
Subject: [ruby-changes:24387] nobu:r36438 (trunk): empty_p: optimize and warnings

nobu	2012-07-18 16:44:17 +0900 (Wed, 18 Jul 2012)

  New Revision: 36438

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=36438

  Log:
    empty_p: optimize and warnings
    
    * ext/dbm/dbm.c (fdbm_empty_p): not empty if first key exists.
      suppress warnngs by gcc 4.7 -Wstrict-overflow.
    * ext/sdbm/init.c (fsdbm_empty_p): ditto.

  Modified files:
    trunk/ext/dbm/dbm.c
    trunk/ext/sdbm/init.c

Index: ext/sdbm/init.c
===================================================================
--- ext/sdbm/init.c	(revision 36437)
+++ ext/sdbm/init.c	(revision 36438)
@@ -714,21 +714,20 @@
     datum key;
     struct dbmdata *dbmp;
     DBM *dbm;
-    int i = 0;
 
     GetDBM(obj, dbmp);
     if (dbmp->di_size < 0) {
 	dbm = dbmp->di_dbm;
 
 	for (key = sdbm_firstkey(dbm); key.dptr; key = sdbm_nextkey(dbm)) {
-	    i++;
+	    return Qfalse;
 	}
     }
     else {
-	i = dbmp->di_size;
+	if (!dbmp->di_size)
+	    return Qfalse;
     }
-    if (i == 0) return Qtrue;
-    return Qfalse;
+    return Qtrue;
 }
 
 /*
Index: ext/dbm/dbm.c
===================================================================
--- ext/dbm/dbm.c	(revision 36437)
+++ ext/dbm/dbm.c	(revision 36438)
@@ -689,21 +689,20 @@
     datum key;
     struct dbmdata *dbmp;
     DBM *dbm;
-    int i = 0;
 
     GetDBM2(obj, dbmp, dbm);
     if (dbmp->di_size < 0) {
 	dbm = dbmp->di_dbm;
 
 	for (key = dbm_firstkey(dbm); key.dptr; key = dbm_nextkey(dbm)) {
-	    i++;
+	    return Qfalse;
 	}
     }
     else {
-	i = (int)dbmp->di_size;
+	if (!dbmp->di_size)
+	    return Qfalse;
     }
-    if (i == 0) return Qtrue;
-    return Qfalse;
+    return Qtrue;
 }
 
 /*

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]