module Zopfli
Constants
- VERSION
Public Class Methods
deflate(p1, p2 = v2)
click to toggle source
static VALUE zopfli_deflate(int argc, VALUE *argv, VALUE self) { zopfli_deflate_args_t args; VALUE in, out, opts; ZopfliInitOptions(&args.options); rb_scan_args(argc, argv, "11", &in, &opts); if (!NIL_P(opts)) { args.format = zopfli_deflate_parse_options(&args.options, opts); } else { args.format = DEFAULT_FORMAT; } StringValue(in); args.in = (unsigned char*)RSTRING_PTR(in); args.insize = RSTRING_LEN(in); args.out = NULL; args.outsize = 0; #ifdef HAVE_RUBY_THREAD_H rb_thread_call_without_gvl(zopfli_deflate_no_gvl, (void *)&args, NULL, NULL); #else zopfli_deflate_no_gvl((void *)&args); #endif out = rb_str_new((const char*)args.out, args.outsize); free(args.out); return out; }