ソースを参照

Further improvements to bbStringEquals.

woollybah 6 年 前
コミット
7cde730edd
2 ファイル変更11 行追加0 行削除
  1. 4 0
      blitz.mod/blitz_string.c
  2. 7 0
      blitz.mod/blitz_string.h

+ 4 - 0
blitz.mod/blitz_string.c

@@ -944,6 +944,9 @@ char *bbTmpUTF8String( BBString *str ){
 	return p;
 }
 
+#if __STDC_VERSION__ >= 199901L
+extern int bbStringEquals( BBString *x,BBString *y);
+#else
 int bbStringEquals( BBString *x,BBString *y ){
 	if (x->length-y->length != 0) return 0;
 	BBChar * bx = x->buf;
@@ -952,3 +955,4 @@ int bbStringEquals( BBString *x,BBString *y ){
 	while( k-- ) if ( *bx++ - *by++ != 0 ) return 0;
 	return 1;
 }
+#endif

+ 7 - 0
blitz.mod/blitz_string.h

@@ -82,7 +82,14 @@ char*	bbTmpCString( BBString *str );
 BBChar*	bbTmpWString( BBString *str );
 char*	bbTmpUTF8String( BBString *str );
 
+#if __STDC_VERSION__ >= 199901L
+inline int bbStringEquals( BBString *x,BBString *y ){
+	if (x->length-y->length != 0) return 0;
+	return memcmp(x->buf, y->buf, x->length * sizeof(BBChar)) == 0;
+}
+#else
 int bbStringEquals( BBString *x,BBString *y );
+#endif
 
 #ifdef __cplusplus
 }