(In reply to Adam Reichold from comment #81) > (In reply to Adrian Johnson from comment #78) > > I agree that the two calls to doGetChars and updateHash should be merged but > > I don't think a for loop is the best way to process loops where the > > increment is not exactly the same on each iteration. Maybe something like > > this: > > > > void FormFieldSignature::hashSignedByteRange(SignatureHandler *handler, > > Goffset start, Goffset len) > > { > > const int CHUNK_SIZE = 4096; > > unsigned char buffer[CHUNK_SIZE]; > > Goffset i = 0; > > int byte_count = CHUNK_SIZE; > > > > doc->getBaseStream()->setPos(start); > > while (i < len) > > { > > if (i + CHUNK_SIZE > len) > > byte_count = len - i; > > > > doc->getBaseStream()->doGetChars(byte_count, buffer); > > handler->updateHash(buffer, byte_count); > > i += byte_count; > > } > > } > > I was thinking of something like > > doc->getBaseStream()->setPos(start); > for (Goffset offset = 0; offset < len; offset += CHUNK_SIZE) > { > const int byte_count = min(CHUNK_SIZE, len - offset); > > doc->getBaseStream()->doGetChars(byte_count, buffer); > handler->updateHash(buffer, byte_count); > } > > to make the loop more regular as we don't care if offset > len instead of > offset == len after the last iteration. (That code was not tested or even > compiled.) > > > I don't mind if we fix all this later. It doesn't have to hold up the > > initial release. > > Maybe if there is some external pressure to release this, but otherwise I'd > propose polishing it now, since there is a certain momentum not to touch > working code once it is released.
If we're too picky it may just die in this branch and never be merged :D > > Best regards, Adam. -- You received this bug notification because you are a member of Ubuntu Desktop Bugs, which is subscribed to poppler in Ubuntu. https://bugs.launchpad.net/bugs/740506 Title: verify digital signatures To manage notifications about this bug go to: https://bugs.launchpad.net/evince/+bug/740506/+subscriptions -- desktop-bugs mailing list desktop-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/desktop-bugs