Fix code that left shifts a negative value.  This has undefined behavior.

Patched from internal cl/107515669 by rtrieu and added comments.

BUG=skia:2481

Review URL: https://codereview.chromium.org/1439483002
2 files changed