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: 065450670cc2
Choose a base ref
...
head repository: rubinius/rubinius
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 13f6358bd455
Choose a head ref
  • 3 commits
  • 3 files changed
  • 1 contributor

Commits on Feb 14, 2015

  1. Copy the full SHA
    64940a3 View commit details
  2. Fixed using tag describe info.

    brixen committed Feb 14, 2015
    Copy the full SHA
    18c0024 View commit details

Commits on Feb 15, 2015

  1. Copy the full SHA
    13f6358 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);