about summary refs log tree commit diff
path: root/src/rustc/lib
diff options
context:
space:
mode:
authorTim Chevalier <chevalier@alum.wellesley.edu>2012-06-22 11:53:25 -0700
committerTim Chevalier <chevalier@alum.wellesley.edu>2012-06-22 11:53:25 -0700
commit21399dca12a7bd812b89d359e2d838965c25f17d (patch)
tree7ec5797aee3f445f64ca455a53f0d797e9cf5db0 /src/rustc/lib
parent25aa3605952719fbfc7ccb998a7980fad6df2eb1 (diff)
downloadrust-21399dca12a7bd812b89d359e2d838965c25f17d.tar.gz
rust-21399dca12a7bd812b89d359e2d838965c25f17d.zip
Change resources to classes in libstd and rustc
Diffstat (limited to 'src/rustc/lib')
-rw-r--r--src/rustc/lib/llvm.rs24
1 files changed, 16 insertions, 8 deletions
diff --git a/src/rustc/lib/llvm.rs b/src/rustc/lib/llvm.rs
index 4e4f9829dfb..1c5d41b0939 100644
--- a/src/rustc/lib/llvm.rs
+++ b/src/rustc/lib/llvm.rs
@@ -1092,8 +1092,10 @@ fn fn_ty_param_tys(fn_ty: TypeRef) -> [TypeRef] unsafe {
 
 /* Memory-managed interface to target data. */
 
-resource target_data_res(TD: TargetDataRef) {
-    llvm::LLVMDisposeTargetData(TD);
+class target_data_res {
+    let TD: TargetDataRef;
+    new(TD: TargetDataRef) { self.TD = TD; }
+    drop { llvm::LLVMDisposeTargetData(self.TD); }
 }
 
 type target_data = {lltd: TargetDataRef, dtor: @target_data_res};
@@ -1106,8 +1108,10 @@ fn mk_target_data(string_rep: str) -> target_data {
 
 /* Memory-managed interface to pass managers. */
 
-resource pass_manager_res(PM: PassManagerRef) {
-    llvm::LLVMDisposePassManager(PM);
+class pass_manager_res {
+    let PM: PassManagerRef;
+    new(PM: PassManagerRef) { self.PM = PM; }
+    drop { llvm::LLVMDisposePassManager(self.PM); }
 }
 
 type pass_manager = {llpm: PassManagerRef, dtor: @pass_manager_res};
@@ -1119,8 +1123,10 @@ fn mk_pass_manager() -> pass_manager {
 
 /* Memory-managed interface to object files. */
 
-resource object_file_res(ObjectFile: ObjectFileRef) {
-    llvm::LLVMDisposeObjectFile(ObjectFile);
+class object_file_res {
+    let ObjectFile: ObjectFileRef;
+    new(ObjectFile: ObjectFileRef) { self.ObjectFile = ObjectFile; }
+    drop { llvm::LLVMDisposeObjectFile(self.ObjectFile); }
 }
 
 type object_file = {llof: ObjectFileRef, dtor: @object_file_res};
@@ -1133,8 +1139,10 @@ fn mk_object_file(llmb: MemoryBufferRef) -> option<object_file> {
 
 /* Memory-managed interface to section iterators. */
 
-resource section_iter_res(SI: SectionIteratorRef) {
-    llvm::LLVMDisposeSectionIterator(SI);
+class section_iter_res {
+    let SI: SectionIteratorRef;
+    new(SI: SectionIteratorRef) { self.SI = SI; }
+    drop { llvm::LLVMDisposeSectionIterator(self.SI); }
 }
 
 type section_iter = {llsi: SectionIteratorRef, dtor: @section_iter_res};