Commit b6d45993 by Adeel Mujahid

Merge pull request #584 from am11/master

Misc. fixes
parents 80a470c4 a5067a64
......@@ -35,7 +35,7 @@ function getOutFile(options) {
var file = options.file;
var outFile = options.outFile;
if (!file || !outFile || typeof outFile !== 'string' || typeof file !== 'string') {
if (!outFile || typeof outFile !== 'string' || (!options.data && !file)) {
return null;
}
......@@ -161,12 +161,13 @@ function getOptions(options) {
};
options.success = function() {
var stats = endStats(options.result.stats);
var result = options.result;
var stats = endStats(result.stats);
if (success) {
success({
css: options.result.css,
map: options.result.sourceMap,
css: result.css,
map: result.sourceMap,
stats: stats
});
}
......@@ -231,12 +232,13 @@ module.exports.render = function(options) {
module.exports.renderSync = function(options) {
options = getOptions(options);
var result = options.data ? binding.renderSync(options) : binding.renderFileSync(options);
var status = options.data ? binding.renderSync(options) : binding.renderFileSync(options);
var result = options.result;
if(result) {
options.result.stats = endStats(options.result.stats);
if(status) {
result.stats = endStats(result.stats);
return options.result;
return result;
}
};
......
......@@ -119,13 +119,12 @@ function testBinary(options) {
return;
}
return; // TODO: remove it once TravisCI build pass 90% and above tests
fs.stat(path.join(__dirname, '..', 'vendor', options.bin, 'binding.node'), function (err) {
if (err) {
return build(options);
}
return; // TODO: remove it once TravisCI build pass 90% and above tests
console.log('`' + options.bin + '` exists; testing');
var total;
......
......@@ -113,7 +113,7 @@ void ExtractOptions(Local<Object> options, void* cptr, sass_context_wrapper* ctx
sass_option_set_precision(sass_options, options->Get(NanNew("precision"))->Int32Value());
}
void GetStats(Handle<Object> result, Sass_Context* ctx) {
void GetStats(sass_context_wrapper* ctx_w, Sass_Context* ctx) {
char** included_files = sass_context_get_included_files(ctx);
Handle<Array> arr = NanNew<Array>();
......@@ -123,10 +123,13 @@ void GetStats(Handle<Object> result, Sass_Context* ctx) {
}
}
(*result)->Get(NanNew("stats"))->ToObject()->Set(NanNew("includedFiles"), arr);
Local<Object> obj = NanNew(ctx_w->result);
obj->Get(NanNew("stats"))->ToObject()->Set(NanNew("includedFiles"), arr);
NanAssignPersistent(ctx_w->result, obj);
}
void GetSourceMap(Handle<Object> result, Sass_Context* ctx) {
void GetSourceMap(sass_context_wrapper* ctx_w, Sass_Context* ctx) {
Handle<Value> source_map;
if (sass_context_get_error_status(ctx)) {
......@@ -140,16 +143,23 @@ void GetSourceMap(Handle<Object> result, Sass_Context* ctx) {
source_map = NanNew<String>("{}");
}
(*result)->Set(NanNew("sourceMap"), source_map);
Local<Object> obj = NanNew(ctx_w->result);
obj->Set(NanNew("sourceMap"), source_map);
NanAssignPersistent(ctx_w->result, obj);
}
int GetResult(Handle<Object> result, Sass_Context* ctx) {
int GetResult(sass_context_wrapper* ctx_w, Sass_Context* ctx) {
int status = sass_context_get_error_status(ctx);
if (status == 0) {
(*result)->Set(NanNew("css"), NanNew<String>(sass_context_get_output_string(ctx)));
GetStats(result, ctx);
GetSourceMap(result, ctx);
Local<Object> obj = NanNew(ctx_w->result);
obj->Set(NanNew("css"), NanNew<String>(sass_context_get_output_string(ctx)));
NanAssignPersistent(ctx_w->result, obj);
GetStats(ctx_w, ctx);
GetSourceMap(ctx_w, ctx);
}
return status;
......@@ -169,7 +179,7 @@ void make_callback(uv_work_t* req) {
ctx = sass_file_context_get_context(ctx_w->fctx);
}
int status = GetResult(ctx_w->result, ctx);
int status = GetResult(ctx_w, ctx);
if (status == 0) {
// if no error, do callback(null, result)
......@@ -220,7 +230,7 @@ NAN_METHOD(RenderSync) {
ExtractOptions(options, dctx, ctx_w, false, true);
compile_data(dctx);
int result = GetResult(ctx_w->result, ctx);
int result = GetResult(ctx_w, ctx);
Local<String> error;
if (result != 0) {
......@@ -267,7 +277,7 @@ NAN_METHOD(RenderFileSync) {
ExtractOptions(options, fctx, ctx_w, true, true);
compile_file(fctx);
int result = GetResult(ctx_w->result, ctx);
int result = GetResult(ctx_w, ctx);
Local<String> error;
if (result != 0) {
......
......@@ -37,8 +37,6 @@ extern "C" {
sass_delete_file_context(ctx_w->fctx);
}
NanDisposePersistent(ctx_w->result);
delete ctx_w->success_callback;
delete ctx_w->error_callback;
delete ctx_w->importer_callback;
......@@ -48,6 +46,8 @@ extern "C" {
uv_mutex_destroy(&ctx_w->importer_mutex);
uv_cond_destroy(&ctx_w->importer_condition_variable);
NanDisposePersistent(ctx_w->result);
free(ctx_w);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment