Fix vector addEnd so that it increments size AFTER the resize and resize() doesn't copy_construct an invalid item, which only SOMETIMES failes
This commit is contained in:
@@ -142,10 +142,10 @@ obj vector<T> (Object) {
|
|||||||
}
|
}
|
||||||
fun add(dataIn: T): void { addEnd(dataIn); }
|
fun add(dataIn: T): void { addEnd(dataIn); }
|
||||||
fun addEnd(dataIn: T): void {
|
fun addEnd(dataIn: T): void {
|
||||||
|
if (size+1 >= available)
|
||||||
|
resize((size+1)*2);
|
||||||
|
maybe_copy_construct(&data[size], &dataIn);
|
||||||
size++;
|
size++;
|
||||||
if (size >= available)
|
|
||||||
resize(size*2);
|
|
||||||
maybe_copy_construct(&data[size-1], &dataIn);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun remove(index: int) {
|
fun remove(index: int) {
|
||||||
|
|||||||
@@ -3,7 +3,8 @@ import grammer:*
|
|||||||
import string:*
|
import string:*
|
||||||
|
|
||||||
fun main():int {
|
fun main():int {
|
||||||
var a = load_grammer(string("grammer.kgm"))
|
var a = load_grammer(string("../krakenGrammer.kgm"))
|
||||||
|
/*var a = load_grammer(string("grammer.kgm"))*/
|
||||||
println(a.to_string())
|
println(a.to_string())
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
|
import io:*
|
||||||
|
|
||||||
fun main():int {
|
fun main():int {
|
||||||
var wr: fun():int*
|
var wr: fun():int*
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user