Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: rubinius/rubinius
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 17172bfe24c4
Choose a base ref
...
head repository: rubinius/rubinius
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: f241e40caedb
Choose a head ref
  • 3 commits
  • 3 files changed
  • 1 contributor

Commits on Feb 15, 2015

  1. Copy the full SHA
    5b79263 View commit details
  2. Fixed using tag describe info.

    brixen committed Feb 15, 2015
    Copy the full SHA
    ef3d9a3 View commit details
  3. Copy the full SHA
    f241e40 View commit details
Showing with 15 additions and 5 deletions.
  1. +1 −1 rakelib/release.rake
  2. +4 −3 rakelib/release.rb
  3. +10 −1 vm/gc/finalize.cpp
2 changes: 1 addition & 1 deletion rakelib/release.rake
Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@ require "rakelib/release"

task :revision_file do
if git_directory
File.open(revision_file, "w") { |f| f.write release_revision }
File.open(revision_file, "w") { |f| f.write release_revision.join(" ") }
end
end

7 changes: 4 additions & 3 deletions rakelib/release.rb
Original file line number Diff line number Diff line change
@@ -8,19 +8,20 @@ def revision_file
end

def describe_revision
@description ||= `git describe --tags --abbrev=40`
@description ||= `git describe --tags --abbrev=40 --long`
end

def release_revision
if git_directory
if m = describe_revision.match(/^v(\d+\.\d+(\.\d+)?)-(\d+)-g([0-9a-f]+)/)
version = [m[1], m[3]].compact.join(".c")
patch = m[3] unless m[3] == "0"
version = [m[1], patch].compact.join(".c")
return version, m[4]
end
end

if File.exist? revision_file
return IO.read(revision_file)
return IO.read(revision_file).split
end

["X.Y.Z", default_release_date, "build"]
11 changes: 10 additions & 1 deletion vm/gc/finalize.cpp
Original file line number Diff line number Diff line change
@@ -4,6 +4,7 @@
#include "object_memory.hpp"
#include "call_frame.hpp"
#include "metrics.hpp"
#include "exception_point.hpp"

#include "builtin/array.hpp"
#include "builtin/class.hpp"
@@ -182,7 +183,9 @@ namespace rubinius {

NativeMethodEnvironment* env = state->vm()->native_method_environment;
NativeMethodFrame nmf(env, 0, 0);
ExceptionPoint ep(env);
CallFrame* call_frame = ALLOCA_CALLFRAME(0);

call_frame->previous = 0;
call_frame->constant_scope_ = 0;
call_frame->dispatch_data = (void*)&nmf;
@@ -201,7 +204,13 @@ namespace rubinius {

nmf.setup(Qnil, Qnil, Qnil, Qnil);

(*process_item_->finalizer)(state, process_item_->object);
PLACE_EXCEPTION_POINT(ep);

if(unlikely(ep.jumped_to())) {
// TODO: log this?
} else {
(*process_item_->finalizer)(state, process_item_->object);
}

state->set_call_frame(0);
env->set_current_call_frame(0);