diff options
Diffstat (limited to 'libcult/examples/mm')
| -rw-r--r-- | libcult/examples/mm/shptr/makefile | 48 | ||||
| -rw-r--r-- | libcult/examples/mm/shptr/shptr.cxx | 73 | ||||
| -rw-r--r-- | libcult/examples/mm/transfer/makefile | 48 | ||||
| -rw-r--r-- | libcult/examples/mm/transfer/transfer.cxx | 117 | 
4 files changed, 0 insertions, 286 deletions
diff --git a/libcult/examples/mm/shptr/makefile b/libcult/examples/mm/shptr/makefile deleted file mode 100644 index 2bf1598..0000000 --- a/libcult/examples/mm/shptr/makefile +++ /dev/null @@ -1,48 +0,0 @@ -# file      : examples/mm/shptr/makefile -# author    : Boris Kolpackov <boris@kolpackov.net> -# copyright : Copyright (c) 2005-2010 Boris Kolpackov -# license   : GNU GPL v2; see accompanying LICENSE file - -include $(dir $(lastword $(MAKEFILE_LIST)))../../../build/bootstrap.make - -cxx_tun   := shptr.cxx -cxx_obj   := $(addprefix $(out_base)/,$(cxx_tun:.cxx=.o)) -cxx_od    := $(cxx_obj:.o=.o.d) - -cult.l             := $(out_root)/cult/cult.l -cult.l.cpp-options := $(out_root)/cult/cult.l.cpp-options - -shptr     := $(out_base)/shptr -clean     := $(out_base)/.clean - - -# Build. -# -$(shptr): $(cxx_obj) $(cult.l) - -$(cxx_obj) $(cxx_od): $(cult.l.cpp-options) - -$(call include-dep,$(cxx_od)) - - -# Convenience alias for default target. -# -$(out_base)/: $(shptr) - - -# Clean. -# -$(clean): $(shptr).o.clean           \ -  $(addsuffix .cxx.clean,$(cxx_obj)) \ -  $(addsuffix .cxx.clean,$(cxx_od)) - - -# How to. -# -$(call include,$(bld_root)/cxx/o-e.make) -$(call include,$(bld_root)/cxx/cxx-o.make) -$(call include,$(bld_root)/cxx/cxx-d.make) - -# Dependencies. -# -$(call import,$(src_root)/cult/makefile) diff --git a/libcult/examples/mm/shptr/shptr.cxx b/libcult/examples/mm/shptr/shptr.cxx deleted file mode 100644 index cb026d4..0000000 --- a/libcult/examples/mm/shptr/shptr.cxx +++ /dev/null @@ -1,73 +0,0 @@ -// file      : examples/mm/shptr/shptr.cxx -// author    : Boris Kolpackov <boris@kolpackov.net> -// copyright : Copyright (c) 2005-2010 Boris Kolpackov -// license   : GNU GPL v2 + exceptions; see accompanying LICENSE file - -#include <cult/mm/shptr.hxx> -#include <cult/mm/new.hxx>     // MM::locate -#include <cult/mm/counter.hxx> // MM::inc_ref - -#include <iostream> - -using std::cerr; -using std::endl; - -using namespace Cult; -using namespace MM; - -struct Foo  -{ -  virtual ~Foo () {}  -  char c; -}; - -struct Bar: virtual Foo {char c;}; - -struct Baz: virtual Foo {char c;}; - -struct Fox: Bar, Baz {}; - - -struct A -{ -  char c[8]; -}; - -struct B -{ -  char c[8]; -}; - -struct C : A, B -{ -  char c[8]; -}; - -int -main () -{ -  { -    Baz* bp (new Fox); -    Foo* fp (bp); - -    Counter* cp (locate (fp, *counted)); - -    inc_ref (bp); - -    cp->dec_ref (); - -    if (cp->dec_ref ()) cerr << "good: destroying" << endl; -    else cerr << "bad: leaking" << endl; - -    delete bp; -  } - -  { -    Shptr<Fox> pfox (new Fox); -    Shptr<Bar> pbar (pfox); - -    Shptr<Foo> pfoo; - -    pfoo = pbar; -  } -} diff --git a/libcult/examples/mm/transfer/makefile b/libcult/examples/mm/transfer/makefile deleted file mode 100644 index 3380f10..0000000 --- a/libcult/examples/mm/transfer/makefile +++ /dev/null @@ -1,48 +0,0 @@ -# file      : examples/mm/transfer/makefile -# author    : Boris Kolpackov <boris@kolpackov.net> -# copyright : Copyright (c) 2005-2010 Boris Kolpackov -# license   : GNU GPL v2; see accompanying LICENSE file - -include $(dir $(lastword $(MAKEFILE_LIST)))../../../build/bootstrap.make - -cxx_tun   := transfer.cxx -cxx_obj   := $(addprefix $(out_base)/,$(cxx_tun:.cxx=.o)) -cxx_od    := $(cxx_obj:.o=.o.d) - -cult.l             := $(out_root)/cult/cult.l -cult.l.cpp-options := $(out_root)/cult/cult.l.cpp-options - -transfer  := $(out_base)/transfer -clean     := $(out_base)/.clean - - -# Build. -# -$(transfer): $(cxx_obj) $(cult.l) - -$(cxx_obj) $(cxx_od): $(cult.l.cpp-options) - -$(call include-dep,$(cxx_od)) - - -# Convenience alias for default target. -# -$(out_base)/: $(transfer) - - -# Clean. -# -$(clean): $(transfer).o.clean        \ -  $(addsuffix .cxx.clean,$(cxx_obj)) \ -  $(addsuffix .cxx.clean,$(cxx_od)) - - -# How to. -# -$(call include,$(bld_root)/cxx/o-e.make) -$(call include,$(bld_root)/cxx/cxx-o.make) -$(call include,$(bld_root)/cxx/cxx-d.make) - -# Dependencies. -# -$(call import,$(src_root)/cult/makefile) diff --git a/libcult/examples/mm/transfer/transfer.cxx b/libcult/examples/mm/transfer/transfer.cxx deleted file mode 100644 index 81014d0..0000000 --- a/libcult/examples/mm/transfer/transfer.cxx +++ /dev/null @@ -1,117 +0,0 @@ -// file      : examples/mm/transfer/transfer.cxx -// author    : Boris Kolpackov <boris@kolpackov.net> -// copyright : Copyright (c) 2005-2010 Boris Kolpackov -// license   : GNU GPL v2 + exceptions; see accompanying LICENSE file - -#include <cult/mm/evptr.hxx> - -#include <iostream> - -using std::cerr; -using std::endl; - -using namespace Cult; - -unsigned long count = 0; -unsigned long clone_count = 0; - -struct Type -{ -  Type () -  { -    ++count; -  } - -  ~Type () -  { -    --count; -  } - -  Evptr<Type> -  clone () const -  { -    ++clone_count; -    return Evptr<Type> (new Type); -  } - -  Void -  f () const -  { -    Int i = i_; -    ++i; -  } - -  Int i_; -}; - - -Evptr<Type> -source () -{ -  return Evptr<Type> (new Type); -} - -Void -sink (Evptr<Type> a, Boolean r = true) -{ -  if (r) -  { -    sink (a, false); -  } -  else -  { -    Evptr<Type> b (a); - -    cerr << "\tshare count: " << b.count () << endl; - -    // Any of these will trigger cloning. -    // -    b->f (); -  } -} - -Int -main () -{ -  // case 1 -  // -  { -    cerr << "sink (new type)" << endl; - -    clone_count = 0; -    sink (new Type); - -    cerr << "\tclone count: " << clone_count << endl -         << endl; -  } - -  // case 2 -  // -  { -    cerr << "sink (source ())" << endl; - -    clone_count = 0; -    sink (source ()); - -    cerr << "\tclone count: " << clone_count << endl -         << endl; -  } - - -  // case 3 -  // -  { -    cerr << "sink (p)" << endl; - -    clone_count = 0; - -    Evptr<Type> p (new Type); -    sink (p); - -    cerr << "\tclone count: " << clone_count << endl -         << endl; -  } - - -  cerr << "balance: " << count << endl; -}  | 
