1. 0bfbe05 Reorganize the code, notably move BindingDataNodeIter to InjectorStorage. by Marco Poletti · 10 years ago
  2. 2a1a581 Factor out a Vector class from ComponentStorage. by Marco Poletti · 10 years ago
  3. 9491d65 Switch to the lowercase_with_underscores style for variables and fields (before some used the lowerCamel case instead). by Marco Poletti · 10 years ago
  4. b829323 Rename singleton->object throughout, plus other minor comment fixes. by Marco Poletti · 10 years ago
  5. 85aea00 Rename typeRegistry->bindings, typeRegistryForMultibindings->multibindings throughout. by Marco Poletti · 10 years ago
  6. eedc2a5 Remove the multibindingDeps vector from ComponentStorage. Each MultibindingData stores the deps anyway. by Marco Poletti · 10 years ago
  7. 93372ce Inline trivial methods of ComponentStorage into component.defn.h. by Marco Poletti · 10 years ago
  8. 224bd9c First part of the refactoring of ComponentStorage, mostly moving logic into InjectorStorage. by Marco Poletti · 10 years ago
  9. 4ac3c8e Factor common code in individual bindings in component_storage.defn.h into a new constructObject() method in InjectorStorage. Now the allocator can be private. by Marco Poletti · 10 years ago
  10. 5c913af Split out the allocator part of InjectorStorage into a separate FixedSizeAllocator class. by Marco Poletti · 10 years ago
  11. 58e2ec2 First implementation of binding compression; reduces injection time by ~35% when using virtual destructors. by Marco Poletti · 10 years ago
  12. 050d600 Optimize SemistaticGraph using shallow copy semantics to share data with the NormalizedComponent. Decreases injection time by ~15%. by Marco Poletti · 10 years ago
  13. 5c1bf6d SemistaticGraph now stores internal IDs using a SemistaticGraphInternalNodeId struct. This is in preparation of the upcoming SemistaticGraph optimization. by Marco Poletti · 10 years ago
  14. 181cbe2 Changes in preparation of making SemistaticGraph non-copyable. by Marco Poletti · 10 years ago
  15. 5200558 Make InjectorStorage and NormalizedComponentStorage non-movable/copyable, in preparation of future optimizations. by Marco Poletti · 10 years ago
  16. 8fb03fa Move the component normalization logic into InjectorStorage, and refactor InjectorStorage to prepare for the StaticMap optimization. by Marco Poletti · 10 years ago
  17. 4e9594b InjectorStorage now stores the type registry (for bindings and multibindings) separately, instead of storing a NormalizedComponentStorage. This is in preparation for future optimizations. by Marco Poletti · 10 years ago
  18. a0eda10 Make SemistaticGraph compile in debug mode when using a type different from TypeId as key. by Marco Poletti · 10 years ago
  19. d09ec5b Document that the default constructor of Semistatic{Map,Graph} constructs an invalid object. Remove the default constructor of NormalizedComponentStorage. by Marco Poletti · 10 years ago
  20. 757c78f Move code from semistatic_map.cpp to semistatic_map.templates.h. Add a IN_FRUIT_CPP_FILE to ensure that .templates.h files are only included by Fruit cpp files. by Marco Poletti · 10 years ago
  21. cdcf729 The Injector constructor with 2 parameters now takes the NormalizedComponent as const& instead of value. by Marco Poletti · 10 years ago
  22. 7ad3862 Re-organize the files in include/fruit/impl into subdirectories. by Marco Poletti · 10 years ago
  23. faa258c Fix Clang compile error. by Marco Poletti · 10 years ago
  24. 71c36de Fix some warnings in release mode, and set debug-only compiler flags properly. by Marco Poletti · 10 years ago
  25. 7f35b65 Re-organize the source code. Merge component.utils.h into component_impl.h. Now using .defn files for template/inline definitions. by Marco Poletti · 10 years ago
  26. fbcb38b Revert "Another attempt to increase performance by having static storage in the injector." by Marco Poletti · 10 years ago
  27. f50f56f Another attempt to increase performance by having static storage in the injector. by Marco Poletti · 10 years ago
  28. b1d265c Use the run-time dependency graph to save hash table lookups. Saves 10-15% of injection time. by Marco Poletti · 10 years ago
  29. 633a389 Add a SemistaticGraph class and use it to re-implement NormalizedComponentStorage. This is in preparation of a following optimization, for now it's just slower. by Marco Poletti · 10 years ago
  30. bd971eb Rename BindingDataForMultibinding->MultibindingData, BindingDataVectorForMultibinding->NormalizedMultibindingData. by Marco Poletti · 10 years ago
  31. a49c9ad Store dependencies in BindingData, in preparation for the next optimization. by Marco Poletti · 10 years ago
  32. 2d81d25 Remove the BindingData-specific optimization from SemistaticMap (even though this decreases performance) in preparation for later optimizations. by Marco Poletti · 10 years ago
  33. 2050c36 SemistaticMap now uses a random seed for the hash generation instead of using seed 0. by Marco Poletti · 10 years ago
  34. 50291bc Slight optimization for the memory allocation in the injector, saving 1-2% of injection time. by Marco Poletti · 10 years ago
  35. 91d702c Remove SemistaticMap::count(), it's never used. by Marco Poletti · 10 years ago
  36. 4f70da2 Minor changes, simplify/remove unreachable or redundant code. by Marco Poletti · 10 years ago
  37. 5bac985 Drop support for functions as providers (only lambdas are supported now). De-templatize SemistaticMap, store typeInfo + is_created + create/singleton in 2 machine words. Gives a ~10% reduction in injection time. by Marco Poletti · 10 years ago
  38. b1e6c79 Store a vector of pairs instead of two separate vectors in SemistaticMap. This slightly improves injection performance. by Marco Poletti · 10 years ago
  39. 943c382 Restructure/Rewrite the metaprogramming code. Now using None as an element in lists to speed up removals. by Marco Poletti · 10 years ago
  40. a25a1e7 Use exit(1) instead of abort() for runtime errors. by Marco Poletti · 10 years ago
  41. ac0fe96 Fix compilation warnings/issues with GCC 4.9.1. by Marco Poletti · 10 years ago
  42. 21802c6 Inline the ensureConstructed() method, saving ~15% of injection time. by Marco Poletti · 10 years ago
  43. 1fd2649 getMultibindings now returns a vector instead of a set. by Marco Poletti · 10 years ago
  44. d9d60db Reduce the preprocessed size of fruit.h by moving big includes to .cpp files. by Marco Poletti · 10 years ago
  45. 3f0a568 Skip the destruction of trivially destructible types. by Marco Poletti · 10 years ago
  46. 06a1d1e Add a custom map implementation, which improves injection performance by ~20%. This also removes the dependency on the sparsehash library. by Marco Poletti · 10 years ago
  47. c207ede Use lambdas instead of inline functions for comparators; this helps the compiler inline them. by Marco Poletti · 10 years ago
  48. 183fe6d Avoid a copy when constructing an InjectorStorage from a NormalizedComponentStorage&&. by Marco Poletti · 10 years ago
  49. b289de1 Turn NormalizedComponentStorage::install() into a static method. by Marco Poletti · 10 years ago
  50. 42a02a1 Add the notion of NormalizedComponent, add a two-argument constructor of Injector that takes a NormalizedComponent and a Component. by Marco Poletti · 10 years ago
  51. 4f57c29 Remove unused function. by Marco Poletti · 10 years ago
  52. 3ecb041 Prepare support for NormalizedComponent: now InjectorStorage is constructed from a NormalizedComponentStorage instead of a NormalizedComponentStorage::BindingVectors. by Marco Poletti · 10 years ago
  53. 492b1ba Split NormalizedComponentStorage out of InjectorStorage. by Marco Poletti · 10 years ago
  54. 9341b25 Remove ComponentStorage::check() and InjectorStorage::check(), replace with assertions or if statements as appropriate. by Marco Poletti · 10 years ago
  55. 147d290 Insert the bindings in the hash table using a range insert instead of one at a time. by Marco Poletti · 10 years ago
  56. 4b59b0a Revert "Use sorted vectors instead of hash tables in the injector." Hash tables are slightly faster. by Marco Poletti · 10 years ago
  57. d00d693 Use sorted vectors instead of hash tables in the injector. by Marco Poletti · 10 years ago
  58. c8e80a5 Refactor the access to bindings in InjectorStorage, in preparation of the change of representation. by Marco Poletti · 10 years ago
  59. 130624a Fix performance bug that caused a copy in install() even when a temporary was passed. by Marco Poletti · 10 years ago
  60. b35bcb4 Change the representation of a BindingData, now occupies 2 pointers instead of 4. by Marco Poletti · 10 years ago
  61. d238be8 Use (unsorted) vectors in ComponentStorage instead of hash tables. by Marco Poletti · 10 years ago
  62. fdbfcbe Split InjectorStorage out of ComponentStorage. by Marco Poletti · 10 years ago
  63. 494514c Depend on the sparsehash lib to speed up hashing by ~25%. This dependency is optional and can be disabled with -DFRUIT_NO_SPARSE_HASH. by Marco Poletti · 10 years ago
  64. b5cadcf Add move constructors and store the ComponentStorage in a unique_ptr, to avoid copies and also keep the move cost low. by Marco Poletti · 10 years ago
  65. 09fa583 Optimize allocations by allocating a single chunk of memory in the injector. by Marco Poletti · 10 years ago
  66. 6449dae Make RTTI optional. by Marco Poletti · 10 years ago
  67. a88e1d1 Remove support for injection scopes. by Marco Poletti · 10 years ago
  68. ec857eb ComponentStorage: cache the set of multibindings (if not empty). by Marco Poletti · 10 years ago
  69. 6917d7e Fix a bug in ComponentStorage where multibindings were deleted after the bindings that they depended on. by Marco Poletti · 10 years ago
  70. 5d84929 Implement factory bindings. by Marco Poletti · 10 years ago
  71. be1d443 Eager injection no longer injects unreachable types. by Marco Poletti · 10 years ago
  72. 6c83bde Implement eager injection. by Marco Poletti · 10 years ago
  73. 65d8eb9 Implement multibindings. by Marco Poletti · 10 years ago
  74. 5c48390 Fix injection scopes: loop over all parents to determine the types to un-register in the child injector. Also remove useless comparisons of destroy operation. by Marco Poletti · 10 years ago
  75. d61b579 Implement injection scopes, plus some other changes: by Marco Poletti · 10 years ago
  76. c0db95e Rename Module->Component, UnsafeModule->ComponentStorage. by Marco Poletti · 10 years ago
  77. e66e1e7 Add cmake variables to allow overriding the installation directories. by Marco Poletti · 10 years ago
  78. e161e6a Build a shared library instead of a static one. by Marco Poletti · 10 years ago
  79. cf798fa Initial commit. by Marco Poletti · 10 years ago