Fossil SCM

Experimental refinements to the fix on this branch to make it slightly more efficient.

mistachkin 2022-10-18 01:07 nonHashFix
Commit 2172c51377e22644aa0734101ed07271e798508193c480081d92caec0dcf2b40
1 file changed +8 -5
+8 -5
--- src/printf.c
+++ src/printf.c
@@ -705,16 +705,19 @@
705705
case etDYNSTRING: {
706706
int limit = flag_alternateform ? va_arg(ap,int) : -1;
707707
bufpt = va_arg(ap,char*);
708708
if( bufpt==0 ){
709709
bufpt = "";
710
- }else if( xtype==etDYNSTRING ){
711
- zExtra = bufpt;
712
- }else if( xtype==etSTRINGID && validate16(bufpt, -1) ){
713
- precision = hash_digits(flag_altform2);
710
+ length = 0;
711
+ }else{
712
+ length = StrNLen32(bufpt, limit);
713
+ if( xtype==etDYNSTRING ){
714
+ zExtra = bufpt;
715
+ }else if( xtype==etSTRINGID && validate16(bufpt, length) ){
716
+ precision = hash_digits(flag_altform2);
717
+ }
714718
}
715
- length = StrNLen32(bufpt, limit);
716719
if( precision>=0 && precision<length ) length = precision;
717720
break;
718721
}
719722
case etBLOB: {
720723
int limit = flag_alternateform ? va_arg(ap, int) : -1;
721724
--- src/printf.c
+++ src/printf.c
@@ -705,16 +705,19 @@
705 case etDYNSTRING: {
706 int limit = flag_alternateform ? va_arg(ap,int) : -1;
707 bufpt = va_arg(ap,char*);
708 if( bufpt==0 ){
709 bufpt = "";
710 }else if( xtype==etDYNSTRING ){
711 zExtra = bufpt;
712 }else if( xtype==etSTRINGID && validate16(bufpt, -1) ){
713 precision = hash_digits(flag_altform2);
 
 
 
 
714 }
715 length = StrNLen32(bufpt, limit);
716 if( precision>=0 && precision<length ) length = precision;
717 break;
718 }
719 case etBLOB: {
720 int limit = flag_alternateform ? va_arg(ap, int) : -1;
721
--- src/printf.c
+++ src/printf.c
@@ -705,16 +705,19 @@
705 case etDYNSTRING: {
706 int limit = flag_alternateform ? va_arg(ap,int) : -1;
707 bufpt = va_arg(ap,char*);
708 if( bufpt==0 ){
709 bufpt = "";
710 length = 0;
711 }else{
712 length = StrNLen32(bufpt, limit);
713 if( xtype==etDYNSTRING ){
714 zExtra = bufpt;
715 }else if( xtype==etSTRINGID && validate16(bufpt, length) ){
716 precision = hash_digits(flag_altform2);
717 }
718 }
 
719 if( precision>=0 && precision<length ) length = precision;
720 break;
721 }
722 case etBLOB: {
723 int limit = flag_alternateform ? va_arg(ap, int) : -1;
724

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button