Files
Anghelo Carvajal d66a21685f Initial repo setup (#1)
* git subrepo clone git@github.com:ethteck/splat.git tools/splat

subrepo:
  subdir:   "tools/splat"
  merged:   "4fec014"
upstream:
  origin:   "git@github.com:ethteck/splat.git"
  branch:   "master"
  commit:   "4fec014"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"

* gitignore

* decompress_baserom.py

* Initial yaml

* run flib

* more yaml stuff

* Builds an uncompressed ROM

* setup ido download

* git subrepo clone git@github.com:simonlindholm/asm-differ.git tools/asm-differ

subrepo:
  subdir:   "tools/asm-differ"
  merged:   "ae40866"
upstream:
  origin:   "git@github.com:simonlindholm/asm-differ.git"
  branch:   "main"
  commit:   "ae40866"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"

* git subrepo clone git@github.com:simonlindholm/asm-processor.git tools/asm-processor

subrepo:
  subdir:   "tools/asm-processor"
  merged:   "bbd86ea"
upstream:
  origin:   "git@github.com:simonlindholm/asm-processor.git"
  branch:   "main"
  commit:   "bbd86ea"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"

* git subrepo clone (merge) git@github.com:EllipticEllipsis/fado.git tools/fado

subrepo:
  subdir:   "tools/fado"
  merged:   "8d896ee"
upstream:
  origin:   "git@github.com:EllipticEllipsis/fado.git"
  branch:   "master"
  commit:   "8d896ee"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"

* setup ido in makefile

* data and rodata

* add automatic file splits

* bootstrap most symbol_addrs

* git subrepo clone --branch=irix git@github.com:hensldm/ultralib.git lib/ultralib

subrepo:
  subdir:   "lib/ultralib"
  merged:   "0d1e095"
upstream:
  origin:   "git@github.com:hensldm/ultralib.git"
  branch:   "irix"
  commit:   "0d1e095"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"

* setup ido building

* various tooling

* git subrepo pull tools/asm-differ

subrepo:
  subdir:   "tools/asm-differ"
  merged:   "857b398"
upstream:
  origin:   "git@github.com:simonlindholm/asm-differ.git"
  branch:   "main"
  commit:   "857b398"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"

* Change defines to match IDO

* review

* newlin

* update gitignore

* Windows error

* D_01000000

* yeet settings.json

* yeet

* git subrepo clone git@github.com:decompals/ultralib.git lib/ultralib

subrepo:
  subdir:   "lib/ultralib"
  merged:   "d03b2a3"
upstream:
  origin:   "git@github.com:decompals/ultralib.git"
  branch:   "main"
  commit:   "d03b2a3"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"

* clangformat and clangtidy

* Setup a bunch of headers

* bootstrap boot and code functions and variables headers

* global.h

* update format.py includes

* -D_MIPS_SZLONG=32

* format.py: --verbose

* Update tools/decompress_baserom.py

Co-authored-by: Derek Hensley <hensley.derek58@gmail.com>

* Add libc to global.h

* review

* yeet saved_regs

* yeet headers

* yeet _MSC_VER

* more header cleanup

* add readme licensing note

---------

Co-authored-by: Derek Hensley <hensley.derek58@gmail.com>
2023-03-29 03:42:56 +01:00
..
2023-03-29 03:42:56 +01:00
2023-03-29 03:42:56 +01:00
2023-03-29 03:42:56 +01:00
2023-03-29 03:42:56 +01:00
2023-03-29 03:42:56 +01:00
2023-03-29 03:42:56 +01:00
2023-03-29 03:42:56 +01:00
2023-03-29 03:42:56 +01:00
2023-03-29 03:42:56 +01:00

vc_vector

Fast simple C vector implementation

Build Status: make && make test

Usage

Basic

#include "vc_vector.h"

int main() {
  // Creates an empty vector with the default reserved size
  // and without custom deleter. Vector will contain 'int'
  vc_vector* v = vc_vector_create(0, sizeof(int), NULL);
  if (!v) {
    return 1;
  }

  const int count = 10;
  for (int i = 0; i < count; ++i) {
    // The function takes a pointer to the elements,
    // but the vector will make a copy of the element
    vc_vector_push_back(v, &i);
  }

  // Print each vector element
  for (void* i = vc_vector_begin(v);
             i != vc_vector_end(v);
             i = vc_vector_next(v, i)) {
    printf("%u; ", *(int*)i);
  }

  vc_vector_release(v);
  return 0;
}

Advanced

#include "vc_vector.h"

struct Item {
  int val1;
  int val2;
};

int main() {
  const int n = 10;

  // Creates an empty vector with the reserved size for the 'n' elements
  // and with custom deleter 'free'. Vector will contain pointers to 'Item'
  vc_vector* v = vc_vector_create(n, sizeof(struct Node*), free);
  if (!v) {
    return 1;
  }

  struct Item* item = NULL;
  const int count = n + 1;
  // Vector automatically increases the reserved size when 'n + 1' will be added
  for (int i = 0; i < count; ++i) {
    // Creating item
    item = malloc(sizeof(struct Item));
    if (!item) {
      continue;
    }

    item->val1 = i;
    item->val2 = 0;

    // Pushing to the end of the vector
    if (!vc_vector_push_back(v, item)) {
      // If the item was not pushed, you have to delete it
      free(item);
    }
  }

  // ...

  // Calls custom deleter 'free' for all items
  // and releases the vector
  vc_vector_release(v);
  return 0;
}

Projects that use vc_vector

kraken.io

License

MIT License